我正在使用Google Drive API v3的可恢复上传
https://developers.google.com/drive/v3/web/manage-uploads#resumable
POST似乎成功。我收到了一个带有包含我的会话URI的Location标头的200。
我能够将数据PUT到该URI,并看到它已上传。但是,生成的文件比我的本地JPEG大三分之一,没有标题,一旦下载就无法打开。
这是加载文件的代码
fr = new FileReader(); // FileReader instance
fr.onloadend = function () {
fileData = fr.result;
console.log("fileData.length = " + fileData.length);
var img = document.createElement('img');
img.src = fileData;
document.body.appendChild(img);
};
//fr.readAsText( file );
fr.readAsDataURL( file );
//fr.readAsBinaryString(file);
//fr.readAsArrayBuffer(file);
如您所见,我将图像添加到页面。它成功显示。 (你也可以看到我使用FileReader进行了很多试验和错误(所有错误!)
这是PUT的代码
$.ajax
({
url: resumableSessionURI,
type: "PUT",
headers:
{
"X-Upload-Content-Length": fileSize,
"Content-Type": "image/jpeg"
},
data: fileData
});
我在Google云端硬盘中获得了200个回复和一个新的无标题文件。
本地文件是4,751,758字节。 filedata的长度是6,335,703字节(但仍然在页面中正确呈现)。从Google云端硬盘下载的文件也是6,335,703字节。数据格式是否错误?