我使用gDrive开发工具包中的代码片段来下载文件:
function downloadFile(file, callback) {
if (file.downloadUrl) {
var accessToken = gapi.auth.getToken().access_token;
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.onerror = function() {
callback(null);
};
xhr.send();
} else {
callback(null);
}
}如何在ajax请求完成时提示浏览器打开下载窗口。如何制作回调函数,以便打开对话框保存本地文件?
发布于 2013-11-06 13:12:10
不幸的是,你的方法行不通。
由于标准浏览器安全限制,您无法从Javascript1保存文件
您需要做的是在新窗口中使用downloadUrl,或者在iframe中使用src,使浏览器下载该文件,并提示用户保存它。您将需要添加
&access_token=ya29.YOURACCESSTOKENHERE
设置为URL,以避免出现401错误。
注1.是的,我知道HTML5开始支持从Javascript访问有限的文件系统,但是(1)它不是广泛可用的,(2)对文件可以保存的位置有限制,(3)不是OP所要求的UX。
https://stackoverflow.com/questions/19800709
复制相似问题