对于downloading文件, Google drive api 似乎令人困惑。我已经能够列出所有文件,甚至下载了一些文件,但在下载 Google文档时卡住了。
为什么他们没有真正的下载文件的方法,而是采用两种不同的方法:获取和导出。如果我不需要对文件进行任何转换,为什么我需要为导出指定 Mime类型?此外,在列出文件时,所有文件的 Mime类型始终为null。 e.g
@foreach ($files->getFiles() as $file)
{{ $file->getMimeType() }} // empty string / null
@endforeach
这是我到目前为止所做的事情
public function listFiles(Request $request)
client = $this->getClient();
$service = new Google_Service_Drive($client);
$optParams = array(
'q' => 'fullText contains \'"abc"\'',
'pageSize' => 10,
'fields' => 'nextPageToken, files(id, name)'
);
$files = $service->files->listFiles($optParams);
}
public function downloadFile($file_id)
{
$client = $this->getClient();
$service = new Google_Service_Drive($client);
$file = null;
$file = $service->files->export($file_id, 'application/pdf', array(
'alt' => 'media'
)); // I really need to get rid of Mimetype(application/pdf), It should download the exact same file
}
更新
我设法通过在列表中提供字段来解决mime type
问题。
$optParams = array(
'q' => 'fullText contains \'"basheer"\'',
'pageSize' => 10,
'fields' => 'nextPageToken, files(id, name, mimeType)' //<--
);
但是现在当我尝试下载加载文件时,它会抛出以下错误
不支持请求的转换。 &#34;域&#34;:&#34;全球&#34;,&#34;原因&#34;:&#34; badRequest&#34;,
// request('mimeType') = application/vnd.google-apps.spreadsheet
$file = $service->files->export($file_id, request('mimeType'), array(
'alt' => 'media'
));
您的回答和评论将不胜感激。
由于