Javascript 从谷歌下载文件
我正在研究Google drive与salesforce的集成。目前,当我试图使用java脚本下载文件时,我面临着文件损坏的问题。我的代码如下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
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,但可以作为图像打开