问题描述
我正在使用以下链接上传关于团队合作的文件 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 (将#修改为@)