我有一些旧代码将csv文件插入Google云端硬盘帐户,默认情况下由Google Spreadsheets打开。
几天前我开始收到此错误消息:
Google连接存在一些问题。请再试一次。 (调用POST时出错 https://www.googleapis.com/upload/drive/v2/files?convert=false&uploadType=multipart&key=XXXXXXXXXXXXXXX: (400)提供的mime类型无效)
以下是一些代码:
public function createDriveFile($tmpFilePath,$title,$fileMimetype = '',$description = '',$googleDocmimeType = ''){
$file = new Google_DriveFile();
$file->setTitle($title);
$file->setDescription($description);
$data = file_get_contents($tmpFilePath);
$optParams = array('data' => $data);
if($fileMimetype != '' ) {
if($fileMimetype === 'text/csv' ) {
$optParams['convert'] = false;
$optParams['mimeType'] = 'application/vnd.google-apps.spreadsheet';
} else {
$optParams['convert'] = true;
}
$file->setMimeType( $fileMimetype );
}
if ($googleDocmimeType != ''){
$optParams['mimeType'] = $googleDocmimeType;
}
$createdFile = $this->_driveService->files->insert($file, $optParams);
return $createdFile;
}
我很确定它正在发送'application/vnd.google-apps.spreadsheet'
作为mimetype。
这是对该函数的调用:
$createFileInfo = $googleOauth->createDriveFile('/tmp/file.csv', 'file.csv','text/csv');
我做了一些测试,将'convert'
参数的值更改为true
,但没有效果。
答案 0 :(得分:3)
您应该使用mimeType text/csv
发送它。 Google表格仍然可以打开它,因此无需将其误传为真正的Google电子表格。