1

这是我上传文件的代码:

private function addFile(File $file, $folderProject, User $user) {

    $fileToUpload = new Google_DriveFile();
    $fileToUpload->setTitle($file->getName());

    //set mime type
    $fileToUpload->setMimeType($file->getMimeType());

    //build parent and set id
    $parent = new Google_ParentReference();
    $parent->setId($folderProject->getId());

    //set parent to file
    $fileToUpload->setParents(array($parent));

    $data = file_get_contents($file->getPath());

    $createdFile = $this->service->files->insert($fileToUpload, array(
            'data' => $data,
            'mimeType' => $file->getMimeType(),
    ));

}

例如,当我使用此 PHP 代码上传 docx 时,该文件附加在 Google Drive 网站上不可读(它显示了 docx 的 XML 结构),并且它在我的 Google Drive 文件夹中显示如下:

不可读

当我尝试直接通过 Google Drive UI 上传 docx 时,它会显示如下(我想要的): 可读

我很确定问题出在 Google Drive UI 尝试以不同的方式打开文件的事实,因为我通过我的应用程序上传了它,但我不希望这样 :)

(我对其他类型的文件也有同样的问题)


我尝试'convert' = true在数组中设置参数,但在上传过程中出现此错误:

..convert=true&uploadType=multipart&key=AI39si49a86oqv9fhb9yzXp7FCWL-cSqwFiClHZ‌​qS3Y3r9Hw8ujtSNlZEWZyFKBp_id7LUyFaZTJ97pMeb0XqHznycK7JJ9o_Q: (500) 内部错误

文档:https ://developers.google.com/drive/v2/reference/files/insert

=> 但无论如何我不认为转换是正确的解决方案,我只想能够看到内容,就好像我通过 Google Drive UI 上传文件一样


如果我从我的 Google Drive Sync 文件夹中打开 docx 并编辑并保存它,我将能够通过 Google Drive UI 看到它(显示为 W 标志)

4

1 回答 1

0

我也遇到同样的问题。

但不同的是,我正在上传 pdf 并能够在 google drive UI 中查看 pdf。

添加新pdf后,我需要通过api代码将其自动转换为google doc格式。

如果我更改 $mimeType = 'application/vnd.google-apps.document'; 然后得到以下错误
https://www.googleapis.com/upload/drive/v2/files?convert=true&uploadType=multipart : (400) Bad Request

如果我添加可选参数

$createdFile = $service->files->insert($file, array(
  'data' => $data,
  'mimeType' => $mimeType,
'convert' => TRUE
));

然后没有变化,只有pdf上传没有转换。

你有什么建议吗,我需要在哪里准确添加转换参数?

于 2012-12-28T09:42:52.930 回答