Google Drive API:插入文件错误“内部错误(代码:4200)”

时间:2014-03-17 14:08:39

标签: php excel google-drive-api

我使用Drive API超过一年。  但有时,上传时出现此错误:

我升级到1.0.x版本,但我仍然遇到此错误,仅在xls文件上。

"调用POST https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&convert=true时出错:(500)内部错误(代码:4200)"

这是插入的代码,它适用于其他所有文件,exept xls。

    $createdFile = $this->service->files->insert($gdfile, array(
          'data' => $data,
          'mimeType' => $this->filemimetype,              
                'uploadType' => 'multipart',
          'convert' => true,
        ));

我在Chrome上通过Chrome上传时也出错了。

"不可能将文件倒入'瞬间" - > "无法显示此文档"

Excel文件在Excel中打开。

1 个答案:

答案 0 :(得分:0)

确保您的$this->filemimetype具有没有字符集部分的mimetype。

我遇到了完全相同的问题 原来这是由于传递给insert方法的mimetype不正确 当我尝试上传excel文件时,finfo_open(FILEINFO_MIME)函数返回了mimetype,其中包含其他字符集信息,如下所示:"application/vnd.ms-excel; charset=binary"

在将字符集传递给Google_DriveFile对象之前,我不得不使用字符集删除该部分。

$finfo = finfo_open(FILEINFO_MIME); 
$mimetype = finfo_file($finfo, $filename);
$mimetype = preg_replace('/;.*/','',$mimetype);