我使用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中打开。
答案 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);