------WebKitFormBoundaryXseUYiNOVZKdYrTk
Content-Disposition: form-data; name="fdata[]"; filename="baby_bot.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryXseUYiNOVZKdYrTk
Content-Disposition: form-data; name="fdata[]"; filename="dyno_bones.png"
Content-Type: image/png
------WebKitFormBoundaryXseUYiNOVZKdYrTk--
しかし、私FileReaderオブジェクトを使用してファイルの内容をバイナリ形式で読み取り、手作業で作成したPOST要求を介してバイナリデータを送信することによって、POST要求を手動で作成し、ajaxでファイルを送信しようとすると、ペイロードはインスペクタで次のようになります。
------CustomFormBoundaryXseUYiNOVZKdYrTk
Content-Disposition: form-data; name="fdata[]"; filename="baby_bot.jpg"
Content-Type: image/jpeg
a2q#¡B±Áð$RÑá3ñ%br4C&Scs¢ÂâÿÄ
------CustomFormBoundaryXseUYiNOVZKdYrTk
Content-Disposition: form-data; name="fdata[]"; filename="dyno_bones.png"
Content-Type: image/png
a2q#¡B±Áð$RÑá3ñ%br4C&Scs¢ÂâÿÄ
------CustomFormBoundaryXseUYiNOVZKdYrTk--
バイナリデータ(これらのバイナリデータランダムアクセント付き文字)を使用します。手動で作成されたPOSTリクエストをと完全に一致させるにはどうすればいいですか?これは私のPHPハンドラスクリプトと同じ結果を得るためです。ここでのアイデアは、ブラウザが送信するPOST要求をエミュレートし、PHPバックエンドで何も変更する必要がないことです。
FormDataオブジェクトを使用すると、ファイルをアップロードするのがはるかに簡単になりました。 FileReaderを使用している場合は、POSTリクエストを適切に通過させるためにバイナリデータを処理する必要があります。これは、FormDataオブジェクトを使用するだけの場合と比較して膨大な作業です。方法はこちらをご覧ください:https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest#Using_FormData_objects – trusktr