我正在尝试创建带有通过vtiger 5.4 Web服务提交的附件的文档。
创建文档非常简单,但是我不清楚添加文件的过程。似乎分两个步骤:
除非有直接的方法可以在文档对象旁边上传文件,否则我找不到关于该主题的任何文档(基本的准系统webservices文档除外)。
希望有任何指针。谢谢!
您没有指定要使用的语言,因此我将在此处粘贴一个简单的curl请求,您可以尝试一下并弄清楚如何以您选择的语言进行复制。
基本上,您需要做的是将文件“附加”"multipart/form-data"
到要发送的用于创建新文件的POST请求中。
curl -i \
-b vtcookies \
-H "Accept: application/json; charset=UTF-8" \
-X POST \
-F '_operation=saveRecord' \
-F 'module=Documents' \
-F 'session=20a5XXXXXXX9a1ba95c19a' \
-F 'values={"notes_title" : "Example title", "assigned_user_id" : "19x1", "notecontent" : "<p>Some content</p>", "filelocationtype" : "I", "filestatus" : 1, "filename" : "set-your-file-name.png"}' \
-F "file=@\"path-to-filename.png\";filename=\"filename.png\"" \
http://localhost:8888/vtigercrm540/modules/Mobile/api.php
该curl示例的实现细节:-b
选项告诉curl在文件中查找会话cookie。要使上述curl请求生效,您必须首先运行以下命令:
curl -i \
-c vtcookies \
-H "Accept: application/json; charset=UTF-8" \
-X POST \
-F '_operation=login' \
-F 'username=your-username' \
-F 'password=your-password' \
http://localhost:8888/vtigercrm530/modules/Mobile/api.php
在特别要求与PHP有关的问题之后,添加了以下内容。
根据所请求的PHP语言,这里有更多信息。我参与了Vtiger WebService浏览器项目,并且可以给出更多提示(该项目用于Webservices,而不用于Mobile API,但是提供了一个PHP客户端,并且基本概念非常相似)。
该Vtiger_HTTP_Client
是的子类Curl_HTTP_Client
。而不是使用该send_post_data
方法,您应该看看send_multipart_post_data
。该HTTP_Client.php
文件中有一个称为的方法doPost
。我制作了一个名为的版本,doPostFile
如下所示:
function doPostFile($postdata=false, $file, $decodeResponseJSON=false, $timeout=20) {
if($postdata === false) $postdata = Array();
$this->debug = TRUE;
$resdata = $this->send_multipart_post_data($this->_serviceurl, $postdata, $file, null, $timeout);
if($resdata && $decodeResponseJSON) $resdata = $this->__jsondecode($resdata);
return $resdata;
}
在此代码中,$file
变量包含$_FILES["file"]
,其var_dump
外观类似于:
array(6) { ["name"]=> string(28) "@8590567929_72c0ded112_o.jpg"
["type"]=> string(11) "@image/jpeg"
["tmp_name"]=> string(36) "/Applications/MAMP/tmp/php/phpZWMXz5"
["error"]=> int(0) ["size"]=> int(1255732) }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句