1 回答
TA贡献1878条经验 获得超4个赞
您想使用 google/apiclient 和 php 将文件从 Google Drive 下载到特定目录。
您要下载的文件是您的和/或与您共享的。
如果我的理解是正确的,这个修改怎么样?
修改点:
请getBody()用于$content.
$content->getBody()->eof()
$content->getBody()->read(1024)
修改后的脚本:
在此修改中,Drive API 也检索文件名并用于保存下载的文件。如果您不想使用它,请删除它的脚本。
$fileId = "###"; // Please set the file ID.
// Retrieve filename.
$file = $service->files->get($fileId);
$fileName = $file->getName();
// Download a file.
$content = $service->files->get($fileId, array("alt" => "media"));
$handle = fopen("./download/".$fileName, "w+"); // Modified
while (!$content->getBody()->eof()) { // Modified
fwrite($handle, $content->getBody()->read(1024)); // Modified
}
fclose($handle);
echo "success";
在上面的脚本中,下载的文件被保存到./download/.
笔记:
当Drive API的Files: get方法时,可以下载除Google Docs(Google Spreadsheet、Google Document、Google Slides等)以外的文件。如果您要下载 Google Docs,请使用 Files:export 的方法。请注意这一点。
所以在上面修改过的脚本中,它假设您正在尝试下载除 Google Docs 之外的文件。
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报