2016-11-04 24 views
4

GoogleドライブにArrayBufferの内容でファイルを作成しようとしています。私はJavascriptとバージョン3のドライブaPIを使用しています。GoogleドライブAPI v3とJavascriptを使用してArrayBufferのコンテンツをGoogleドライブにアップロード

this code sampleを使用してテキストファイルを作成することができましたが、ArrayBufferのバイナリデータを使用してファイルを設定する方法の例は見つかりません。これは可能ですか、Googleドライブにアップロードする前にバイナリデータを文字列としてエンコードする必要がありますか?

V3にGoogleのドキュメントは本当にすべてのヘルプは高く評価され:-(

を欠いている。

+0

これは役立つ可能性があります:https://github.com/googledrive/web-quickeditor/blob/master/src/components/drive/multipart.js V3でファイルをアップロードしてもv2と異なるはずはありません。私はまだV3のための多くのドキュメントがないことに同意します。 – DaImTo

+0

@DaImToリンクに感謝します。このコードを使用してファイルをArrayBufferからのデータで更新する方法について正しい方向で私に指摘できますか? – DataGrump

答えて

0

私もこれで苦労し、UTF-8ベースの文字列表現をbase64ingことで、それが仕事を得ることができました

// file.data is an ArrayBuffer 
var b64str = btoa(String.fromCharCode.apply(null, new Uint8Array(file.data))); 
あなたは、ファイルを理解するためにドライブのAPIのマルチパートファイルアップロードでのコンテンツ転送エンコーディングを指定する必要があり

それは次のようになりますArrayBufferの。
// '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 + '--'; 
関連する問題