Этот вопрос следует из моего previous question по тому же вопросу. Простые загрузки файлов, ну, простой.Dropbox v2 API - большие загрузки файлов
$headers = array("Authorization: Bearer dropbox_token",
'Content-Type: application/octet-stream',
'Dropbox-API-Arg: {"path":"/path/file.ext",
"mode":"add"}');
$data = "I love Stackoverflow";
$ch = curl_init('https://content.dropboxapi.com/2/files/upload/');
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Однако это не жизнеспособный вариант, когда данные файла должны быть сохранены в 10 мегабайтах. Я думал, что просто буду использовать новый (ish) PHP curl_file_create.
$headers = array("Authorization: Bearer Dropbox token",
'Content-Type: application/octet-stream',
'Dropbox-API-Arg: {"path":"/path/bigfile.txt",
"mode":"add"}');
$ch = curl_init('https://content.dropboxapi.com/2/files/upload/');
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
$args['file'] = curl_file_create('/path/to/bigfile.txt');
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$args);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Однако это не работает. API Dropbox возвращает сообщение
Ошибка в вызове API-функции «файлы/выгрузка»: неверный HTTP-заголовок «Content-Type»: «application/octet-stream; border = --... Ожидание одного из «application/octet-stream», «text/plain; charset = dropbox-cors-hack
Я был бы очень признателен всем, кто мог бы рассказать мне, где я могу ошибаться.
@arkascha - совершенно бессмысленно комментарий, который не добавляет никакой ценности в текущую дискуссию – DroidOS