我已使用Google Drive API将Android应用中的多个音频文件上传到appfolder空间。现在,我正在尝试使用Google Drive JS API从网上下载文件。我可以使用gapi.client.drive.files.list
列出上传的文件,并且可以使用gapi.client.drive.files.get
查看文件的元数据,但无法找到下载文件的方法。
gapi.client.drive.files.export
失败并显示错误:Export only supports Google Docs
。有人可以建议我下载文件的方法吗?
答案 0 :(得分:0)
如何使用Picker API从Google云端硬盘下载任何文件
首先查看Handling Google Drive Items的完整示例代码。然后对这些方法进行更改。
function createPicker() {
if (pickerApiLoaded && oauthToken) {
var picker = new google.picker.PickerBuilder().
//this tells Drive to show all Files
addView(new google.picker.View(google.picker.ViewId.DOCS)).
setOAuthToken(oauthToken).
setDeveloperKey(developerKey).
setCallback(pickerCallback).
build();
picker.setVisible(true);
}
}
function pickerCallback(data) {
if (data.action == google.picker.Action.PICKED) {
//retrieve the fileID of the chosen file
var fileId = data.docs[0].id;
//with the fileID, download the file using webcontentlink
var webcontentlink = ' https://docs.google.com/uc?id='+fileId+'&export=download'
window.open( webcontentlink,'image/png');
}
}
根据Showing Different Views,google.picker.ViewId.DOCS or google.picker.DocsView
显示了所有Google云端硬盘产品,因此理论上应该包含应用文件夹中的文件。运行此操作后,将显示一个Picker UI,显示所有Drive文件。选择文件,确认后将下载。
答案 1 :(得分:0)
感谢@noogui帮助我找到解决方案。
这就是我必须做的事情:
在页面中添加了iframe:
<iframe id="audioIframe"></iframe>
然后,添加以下js以通过ajax获取文件,并将收到的数据作为src
的{{1}}附加,以便下载。
iframe