微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 PHP 中的 API 在 Teamwork 上上传文件

如何解决无法使用 PHP 中的 API 在 Teamwork 上上传文件

我正在使用以下链接上传关于团队合作的文件 https://developer.teamwork.com/projects/questions/fileUpload-preferred

在这里,我使用带有 CURL 的 PHP Codeigniter 4.x 框架来发送请求,作为第一步的响应,我获得了 Ref 和 URL 这两个值。即第一步在我这边工作正常。

现在进行文档中提到的第二步,如下所示,

向上面的链接发送 PUT 请求,并在请求正文中包含“文件”。除此之外,您还需要以下标题

X-Amz-Acl:公开阅读, 内容长度:文件大小 主机:host-from-the-generate-link

我正在传递文件对象

CodeIgniter\HTTP\Files\UploadedFile 对象 ( [path:protected] => /var/www/web116/tmp/PHPDyYgjj [originalName:protected] => 横幅-01.png [名称:受保护] => 横幅-01.png [originalMimeType:protected] => image/png [error:protected] => 0 [hasMoved:protected] => [size:protected] => 639542 [pathName:SplFileInfo:private] => /var/www/web116/tmp/PHPDyYgjj [文件名:SplFileInfo:private] => PHPDyYgjj )

在请求正文中。

这是我的代码如下:

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,$url);   // $url is value which I have gotten after first step
curl_setopt($ch,CURLOPT_CUSTomrEQUEST,'PUT');
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
                        'X-Amz-Acl: public-read','Content-Length:' . $fileSize,// size of file
                        'Host:  tw-bucket.s3.amazonaws.com'
                    ));
curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode(['file' => $file]));  // $file is file object which I have printed above
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

 $json = curl_exec($ch);
 $result = (array) json_decode($json);
 $result['http_code'] = curl_getinfo($ch,CURLINFO_HTTP_CODE);
 curl_close($ch);

但在 HTTP 代码中,我得到的是 403 而不是 200。

谁能帮我解决这个问题,以便我可以通过团队合作上传文件?我正在为团队合作的特定任务上传文件

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?