Не удается загрузить в Google Docs с php 400 ошибка! - PullRequest
0 голосов
/ 10 мая 2010

Привет, ребята. Я пытаюсь загрузить документы Google в аккаунт приложений Google, используя следующий код - я использую Zend Framework:

function getGoogleClient($s = '')
{
  $service = Zend_Gdata_Docs::AUTH_SERVICE_NAME; 

  $user = 'aaaaa';
  $pass = 'aaaaa';

  $httpClient = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);

  return $httpClient;
}

function uploadDocument($docs, $html, $originalFileName, $temporaryFileLocation) {
    $fileToUpload = $originalFileName;
    if ($temporaryFileLocation) {
        $fileToUpload = $temporaryFileLocation;
    }

    $newDocumentEntry = $docs->uploadFile($fileToUpload, $originalFileName, null, Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);

}



$client = getGoogleClient();
$docs = new Zend_Gdata_Docs($client);
$ls = uploadDocument($docs, true, $file->filename, $file->tmp_name);

Но я продолжаю получать эту ошибку - что здесь не так: (

Expected response code 200, got 400 Inconsistent repeating query parameter 

1 Ответ

1 голос
/ 09 февраля 2011

В Zend_Gdata_Docs есть "ошибка" с mimetype. Если вы используете временный файл и имя файла в качестве заголовка, он автоматически не вытянет для вас mimetype. Он пытается получить mimetype на основе расширения fileLocation, которое не существует во временном файле.

Я создал класс, который работает для меня, а не обновил класс Zend. Он называется ConvertDoc , потому что я хотел иметь возможность загрузить электронную таблицу и загрузить как csv.

Что вам действительно нужно, так это ...

    // get mimetype from original file name
    $filenameParts = explode('.', $originalFileName);
    $fileExtension = end($filenameParts);
    $mimeType = Zend_Gdata_Docs::lookupMimeType($fileExtension);

И передайте $ mimetype вместо null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...