サーバーにポストバックできるように、ファイルクライアント側を取得するAJAXを少し作成しました。対象は。としてフェッチされますArrayBuffer。ただし、保存のためにこのバイナリをサーバーにポストバックするときに、このファイルにいくつかのメタデータを含める必要があります。とオブジェクトを他の文字列でラップしようとしましたArrayBufferが、データサーバー側を調べると、の長さしか転送されていないようArrayBufferです。
私はArrayBufferこの答えを介して文字列に変換しようとしました:
https://stackoverflow.com/a/11058858/449511。
ただし、私ArrayBufferのバイト長は519843であるため、例外が発生します。
Uncaught RangeError:ArrayBufferの長さからbyteOffsetを引いた値は、要素サイズの倍数ではありません。
私の理解ArrayBuffersはまばらです。MDNドキュメントを読んだことがありますが、他に多くを見つけることができません。ArrayBufferこれを文字列に変換する方法、またはオブジェクトにラップする方法について、さらにリソースやアイデアを提供してくれたことに感謝してArrayBufferいます。
これが私のAJAXコードのスニペットです:
$.ajax({
type: 'POST',
url: 'http://localhost:5000/',
data: {fname: f, url:u, binary:b}, // the binary is an ArrayBuffer
});