2010-02-15 3 views
4

Кто-нибудь знает, как публиковать файл с помощью 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 ... 

ответ

1

this article Отъезд. Это дает отличную запись о том, как использовать CURL, в том числе о том, как публиковать переменные. Я не уверен, как использовать это с документами google, но пока вы выполняете их инструкции, это поможет вам разобраться в проблеме post var.

+0

Я видел эту статью раньше, она показывает только, как публиковать переменные, но не файлы :( – antyrat

+0

Ahh shoot, ну попробуйте эту ссылку - это часть CURL manpages: (http: //www.cs.sunysb .edu/documentation/curl/index.html) посмотрите под заголовком «POST (HTTP)», где они обсуждают перемещение файла «cooltext.txt». Это может немного помочь. – Shane

 Смежные вопросы

  • Нет связанных вопросов^_^