【发布时间】:2017-10-21 12:16:03
【问题描述】:
我正在尝试使用 PHP 向 Dropbox API 发出 cUrl 请求,以便开始上传一个非常大的 zip 文件。这是我正在尝试实施的文档,位于https://www.dropbox.com/developers/documentation/http/documentation#files-upload -
网址结构:https://content.dropboxapi.com/2/files/upload_session/start
示例 cUrl 请求:
curl -X POST https://content.dropboxapi.com/2/files/upload_session/start \
--header "Authorization: Bearer <get access token>" \
--header "Dropbox-API-Arg: {\"close\": false}" \
--header "Content-Type: application/octet-stream" \
--data-binary @local_file.txt
这是我的代码:
$uploads = wp_upload_dir();
$file = $uploads['basedir']."/maintainme/backups/files/backup_".$filename.'/'.$filename.'.zip';
$ch = curl_init();
$url = 'https://content.dropboxapi.com/2/files/upload_session/start';
$headers = array(
'Authorization: Bearer ' .$dropbox_token,
'Dropbox-API-Arg: {\"close\": false}',
'Content-Type: application/octet-stream',
);
$fields = array('file' => '@' . $file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields );
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$result = curl_exec($ch);
curl_close($ch);
我得到的错误信息是:
调用 API 函数“files/upload_session/start”时出错:HTTP“Content-Type”标头错误:“application/octet-stream;boundary=--------------- ---------1ee7d00b0e9b0c47"。期待“application/octet-stream”、“text/plain; charset=dropbox-cors-hack”之一。
似乎每次我尝试发出此请求时,此 'Boundary=------------blahblahblah' 都会附加到我的内容类型标头中。谁有想法???谢谢!
【问题讨论】:
标签: php curl http-headers dropbox content-type