如何使用php curl在Alfresco一个存储库中上传文件

时间:2016-10-19 06:29:54

标签: php curl alfresco-share

我在我的localhost上使用alfreco,我想在存储库中上传文件。我得到以下回复,任何帮助我做错了什么?我在localhost上使用alfresco one share:8080, 这是我要上传文件http://127.0.0.1:8080/share/page/folder-details?nodeRef=workspace://SpacesStore/3d393f1c-f6cc-4821-b455-58506de7787f的存储库nodeID
这是我的代码

$ticket = "TICKET_a5331******************516";
$file = "test.txt";

$postvars = array(
'filename' => $file,
'filedata' => '@'. realpath($file),
// destination =  node reference of the Alfresco folder I'd like to use. I used Alfresco Node brower to find it. 
'destination' => 'workspace://SpacesStore/5c6c4555-cbe5-414c-8d46-045870f2f3a6', 
'uploaddirectory' =>'/',
'description' => 'File example',
'contenttype' => 'cm:content',
'overwrite' => 'true',
);

$curl_request = curl_init();
$url = "http://localhost:8080/alfresco/service/api/upload?alf_ticket=".$ticket;
curl_setopt($curl_request, CURLOPT_URL,$url);
curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_request, CURLOPT_HEADER, false);
curl_setopt($curl_request, CURLOPT_POST,true);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYHOST, FALSE);
//$args = new CurlFile(realpath("test.txt"),"txt");

curl_setopt($curl_request, CURLOPT_POSTFIELDS,$postvars);
$result = curl_exec($curl_request);

//print_r(curl_error($curl_request));
echo "<pre>";
print_r($result);

回应:

 {
        "status" : 
      {
        "code" : 401,
        "name" : "Unauthorized",
        "description" : "The request requires HTTP authentication."
      },  

      "message" : "09190030 Authentication failed for Web Script org\/alfresco\/repository\/upload\/upload.post",  
      "exception" : "",

      "callstack" : 
      [ 

      ],

      "server" : "Enterprise v5.1.1 (r128754-b138) schema 9,031",
      "time" : "Oct 19, 2016 4:58:29 PM"
    }

1 个答案:

答案 0 :(得分:0)

您只需要在curl中添加服务器端口:

curl_setopt($ curl_request,CURLOPT_PORT,$ _SERVER [&#39; SERVER_PORT&#39;]);