Кто-нибудь знает, как публиковать файл с помощью curl в документах Google. я пишу этот код:API Документов Google. Загрузить файл с помощью curl
$header[] = "Authorization: GoogleLogin auth=seсretkey";
$header[] = "Content-Type: application/pdf";
$header[] = "Slug: testdoc";
$header[] = "Content-Length: ".$_FILES['file']['size']."";
$url = "http://docs.google.com/feeds/documents/private/full";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($_FILES['file']['tmp_name']));
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
И это прекрасно работает, только если я использую обычный/текст Content-Type с текстовыми файлами, но если мой загруженный файл в двоичном режиме я получил 417 HTTP код ошибки, например, с помощью PDF документы.
Я пытаюсь измените эту строку
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($_FILES['file']['tmp_name']));
Для этого
curl_setopt($ch, CURLOPT_POSTFIELDS, array("file"=>"@".$_FILES['file']['tmp_name']));
Но я получил 417 ответа код ошибки снова. Только обычный/текст ответ 201.
Пример заголовков документов загружаемых Google из official source
POST /feeds/documents/private/full HTTP/1.1
Host: docs.google.com
Authorization: <your authorization header here>
Content-Length: 81047
Content-Type: application/vnd.ms-excel
Slug: Example Spreadsheet
... spreadsheet contents here ...
Я видел эту статью раньше, она показывает только, как публиковать переменные, но не файлы :( – antyrat
Ahh shoot, ну попробуйте эту ссылку - это часть CURL manpages: (http: //www.cs.sunysb .edu/documentation/curl/index.html) посмотрите под заголовком «POST (HTTP)», где они обсуждают перемещение файла «cooltext.txt». Это может немного помочь. – Shane