2016-11-04 63 views
4

我试图在Google Drive上使用ArrayBuffer的内容创建文件。我正在使用Javascript和版本3的Drive aPI。使用Google Drive API v3和Javascript将ArrayBuffer的内容上传到Google云端硬盘

我设法使用this code sample创建了一个填充文本文件,但是我找不到任何有关如何使用来自ArrayBuffer的二进制数据填充文件的示例。这是可能的,还是我必须将我的二进制数据编码为字符串,然后才能将其上传到Google Drive?

谷歌的文档,V3真是个缺乏:-(

任何帮助,高度赞赏。

+0

这可能有所帮助:https://github.com/googledrive/web-quickeditor/blob/master/src/components/drive/multipart.js使用V3上传文件不应该与v2不同。我同意V3还没有太多的文档。 – DaImTo

+0

@DaImTo感谢您的链接。你能指出我正确的方向:如何使用此代码更新来自ArrayBuffer的数据的文件? – DataGrump

回答

0

我挣扎,这也并能得到它的base64ing基于UTF-8字符串表示工作该ArrayBuffer的它看起来是这样的:

// file.data is an ArrayBuffer 
var b64str = btoa(String.fromCharCode.apply(null, new Uint8Array(file.data))); 

然后,您需要在指定的驱动器API的多文件上传的内容传送编码来了解文件:

// 'data' is our base64'd image that came from ArrayBuffer 
var requestBody = 
    '--' + boundary_string + '\n' + 
    "Content-Type: application/json; charset=UTF-8\n\n" + 
    JSON.stringify(metadata) + '\n' + 
    '--' + boundary_string + '\n' + 
    "Content-Type: " + mime + "\n" + 
    "Content-Transfer-Encoding: base64" + 
    data + '\n' + 
    '--' + boundary_string + '--'; 
相关问题