当前位置: 首页 > 知识库问答 >
问题:

使用php 5.4.3将多部分/表单数据上传到alfresco

须新
2023-03-14

嗨,我有一个问题,当我可以尝试上载一个文件的属性和元数据到alFresco 5.2使用php 5.4.3,这是我的代码:

  curl_setopt_array($curl, array(
        CURLOPT_PORT => "8080",
        CURLOPT_INFILESIZE => filesize($lo_document['tmp_name']),
        CURLOPT_URL => "http://localhost:8080/alfresco/api/default-/public/alfresco/versions/1/nodes/-root-/children",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => $pam['body'],
        CURLOPT_HTTPHEADER => array(
            "authorization: ".$la_auth['Authorization'],
            "accept: application/json",
             "content-type: multipart/form-data"
        )
));

$pam['body']是这样的:

-----------------------60061ddb32c3445516be40d631852702
Content-Disposition: form-data; name="name"

patatas.pdf
-----------------------60061ddb32c3445516be40d631852702
Content-Disposition: form-data; name="nodeType"

mutua:documentoMutualista
-----------------------60061ddb32c3445516be40d631852702
Content-Disposition: form-data; name="filedata"; filename="CS-08940-00227056-1.pdf"
Content-Type: application/pdf

-----------------------60061ddb32c3445516be40d631852702--


这显示此错误:

{"error":{"errorKey":"No disk space available","statusCode":409,"briefSummary":"05140331 No disk space available","stackTrace":"For security reasons the stack trace is no longer displayed, but the property is kept for previous versions","descriptionURL":"https://api-explorer.alfresco.com"}}

但这个错误意味着一个或多个参数是错误的,但我不知道是哪个,因为服务器有大量的磁盘空间。

有什么帮助吗?有人使用ApiRest Alfresco 5.2和PHP吗?

共有1个答案

欧阳昊焱
2023-03-14

我在浏览器环境中上传带有JavaScript的文件时遇到了类似的问题,其中状态409带有errorKey没有可用的磁盘空间从露天后端返回,但相同的POSTPostman或CURL中的请求没有问题。

解决方案是不添加HTTP标头"content-type: multipart/form-data",因为它已经包含了一个multipart/form-data;边界=---------------------------41184676334标头,如果没有添加自定义内容类型标头。

参考文献:

  • 在Postman中工作的原因:Postman会自动使用boundry添加属性类型。
  • 带边界定义的多部分/表单数据语法
 类似资料:
  • 我正在尝试在 Java 应用程序中设置一个 Apache Camel 路由,其中使用者终结点是一个 restlet 组件,它将 HTTP 文件上传作为多部分表单数据的 POST 进行处理,然后创建者终结点将请求转发到也接受多部分表单数据的 rest 服务。我是骆驼的新手,不知道如何正确地连接它。以下是到目前为止我的路线。我是否需要对正文进行任何转换,还是会按原样转发多部分表单数据?有人可以为我提供

  • 有人知道如何在中使用吗。Net 4.5与上传? 我在网上找不到任何例子。

  • 我有一个问题与上传多部分形式的图像 下面是我从这个答案中使用的代码 然后我使用NSURLSession来应用请求 服务器说我没有选择要上传的图像,我现在只想上传图像 我必须使用图像路径上传任何图像或它的数据就足够了吗? 我是否错过了任何事情,任何有助于理解这一点的帮助?

  • 我有一个windows服务,正在上传一个多部分数据表单在C#。它上传了一个csv,其中包含身份验证变量,形式如下:一个密钥、一个上下文和一个UUID。变量是在自定义标记类中设置的。每次我尝试上传,我得到一个403错误。 在我的开发过程中,我创建了自己的S3 bucket,并添加了能够成功上传文件的NuGet AWS S3类。现在我上传到第三方桶,我不断得到一个403错误。谢了!

  • 问题内容: 我是angular.js的初学者,但是对基础知识有很好的了解。 我要做的是上传文件和一些表单数据作为多部分表单数据。我读到这不是angular的功能,但是3rd party库可以做到这一点。我已经通过git克隆了angular-file-upload,但是仍然无法发布简单的表单和文件。 有人可以提供如何执行此操作的示例,html和js吗? 问题答案: 首先 您无需对结构进行任何特殊更改