gdrive javascript sdk下载网址

时间:2013-11-05 22:55:06

标签: javascript download google-drive-api

我正在使用gDrive SDK中的代码片段来获取javascript下载文件:

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请求时提示浏览器打开下载窗口。如何打开回调函数以打开本地保存文件的对话框?

1 个答案:

答案 0 :(得分:1)

不幸的是,你的方法不起作用。

由于标准的浏览器安全限制,您无法从Javascript保存文件。[1]

您需要做的是在新窗口中使用downloadUrl,或者在src中使用iframe使浏览器下载文件,并提示用户保存文件。您需要添加

  

&安培; =的access_token ya29.YOURACCESSTOKENHERE

到URL以避免401错误。

注 1.是的我知道HTML5开始支持来自Javascript的有限文件系统访问,但是(1)它没有广泛可用,(2)对文件的保存位置有限制,(3)不是用户体验OP要求。