首页 > 解决方案 > 使用带有原始文件名和扩展名的 Google Drive API 下载

问题描述

正如 Google Drive API 文档所说的下载文件:

https://www.googleapis.com/drive/v3/files/FILEID?alt=media%26key=API_KEY

如果我们将此链接粘贴到 Chrome 或 Safari 它将开始下载。

但问题是

例如

我有文件 mywork.fbx 我上传到谷歌驱动器,并且 FileID 是 ABCDEFG

然后我去下面的链接。

https://www.googleapis.com/drive/v3/files/ABCDEFG?alt=media%26key=MYAPIKEY

我得到了名称为ABCDEFG的文件,没有扩展名

它应该是 mywork.fbx 或 anyname.fbx 而不仅仅是 ABCDEFG

试过了

$file_url = 'https://www.googleapis.com/drive/v3/files/ABCDEFG?alt=media&key=KEY';
header('Content-Disposition: attachment; filename="mywork.fbx"');
readfile($file_url);

标签: google-apigoogle-drive-api

解决方案


  • 您想使用浏览器下载不是 Google Docs 的文件。
  • 您想下载一个文件名与原始文件的文件名和扩展名相同的文件。
  • 您正在使用 API 密钥。
    • 在这种情况下,该文件是公开共享的。

如果我的理解是正确的,这个答案怎么样?在此答案中,webContentLink用作端点。官方文档是这样说的。

网页内容链接

使用基于 cookie 的身份验证在浏览器中下载文件内容的链接。如果内容是公开共享的,则无需任何凭据即可下载内容。

修改端点:

请尝试使用您的浏览器访问以下端点。

https://drive.google.com/uc?export=download&id={fileId}
  • 当您使用它时,请设置文件 ID。在这种情况下,该文件不是 Google Docs。
  • 当它访问上述端点时,可以检索到具有文件名的文件。

参考:

如果我误解了您的问题并且这不是方向,我深表歉意。


推荐阅读