Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从谷歌下载文件_Javascript_Google Drive Api_Salesforce_Apex - Fatal编程技术网

Javascript 从谷歌下载文件

Javascript 从谷歌下载文件,javascript,google-drive-api,salesforce,apex,Javascript,Google Drive Api,Salesforce,Apex,我正在研究Google drive与salesforce的集成。目前,当我试图使用java脚本下载文件时,我面临着文件损坏的问题。我的代码如下 function downloadGDriveFile() { var id = '0B3EI0BFOUwSydHZNZXdIZ3lDZzg'; var downloadUrl = 'https://www.googleapis.com/drive/v2/files/'+ id+'?alt=media'; var accessTo

我正在研究Google drive与salesforce的集成。目前,当我试图使用java脚本下载文件时,我面临着文件损坏的问题。我的代码如下

function downloadGDriveFile() {
    var id = '0B3EI0BFOUwSydHZNZXdIZ3lDZzg';
    var downloadUrl = 'https://www.googleapis.com/drive/v2/files/'+ id+'?alt=media';
    var accessToken = MY ACCESS TOKEN;
    var mType = 'image/jpeg';
    var name = 'Internet_of_Things.jpg';

    if (downloadUrl) {
      var xhr = new XMLHttpRequest();
      xhr.open('GET', downloadUrl);
      xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
      xhr.onload = function() {
        onDownload(xhr.response);
      };
      xhr.onerror = function() {
        //downloadFile(null);
      };
      xhr.send();
    }

    else {
      alert("Unable to download file.");
    }
  }

  function onDownload(data) {
    var filename = 'Internet_of_Things.jpg';
    var blob = new Blob([data], { type: "image/jpeg" });

        if (typeof window.navigator.msSaveBlob !== 'undefined') {
            // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed."
            window.navigator.msSaveBlob(blob, filename);
        } else {
            var URL = window.URL || window.webkitURL;
            var downloadUrl = URL.createObjectURL(blob);
            if (filename) {
                // use HTML5 a[download] attribute to specify filename
                var a = document.createElement("a");
                // safari doesn't support this yet
                if (typeof a.download === 'undefined') {
                    window.location = downloadUrl;
                } else {
                    a.href = downloadUrl;
                    a.download = filename;
                    document.body.appendChild(a);
                    a.click();
                }
            } else {
                //window.location = downloadUrl;
            }
            alert(11);
            //URL.revokeObjectURL(downloadUrl);
            setTimeout(function () { URL.revokeObjectURL(downloadUrl); }, 1); // cleanup
        }
}
下载文件时,文件已损坏。文件内容如下所示

����  JFIF
�� hExif MM*>F(1 N
Paint.NET v3.5.11�� C�� C�� ��" ��


有人能帮我解决这个问题吗?我需要对来自Google REST API的响应进行编码或解码吗?

这是以什么方式损坏的?在我看来它像一个jpg文件。它是jpg,但可以作为图像打开