我正在尝试使用ArrayBuffer的内容在Google云端硬盘上创建一个文件.我正在使用Drive aPI的Javascript和第3版.
我设法使用此代码示例创建一个填充文本文件,但我找不到任何关于如何使用ArrayBuffer中的二进制数据填充文件的示例.这是可能的,还是我必须在将二进制数据上传到Google云端硬盘之前将其编码为字符串?
谷歌的v3文档真的缺乏:-(
任何帮助都非常感谢.
我也遇到了这个问题,并且能够通过对 ArrayBuffer 的基于 UTF-8 的字符串表示进行 base64 处理来使其工作。它看起来像这样:
// file.data is an ArrayBuffer
var b64str = btoa(String.fromCharCode.apply(null, new Uint8Array(file.data)));
Run Code Online (Sandbox Code Playgroud)
然后,您需要在分段文件上传中指定 Content-Transfer-Encoding,以便 Drive 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 + '--';
Run Code Online (Sandbox Code Playgroud)