如何使用JQuery将图像上传到Google云端硬盘?

时间:2016-10-21 19:17:23

标签: javascript jquery google-drive-api

我正在使用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字节。数据格式是否错误?

0 个答案:

没有答案