私は実際に、HTMLフォームを使用せずにjQueryを使用してサーバーに画像を送信したいと考えています。しかし、エンコード タイプの html フォームで受け取ったのと同じデータを取得したいと思います。
multipart/form-data
HTML5 FileReader を使用しました: http://www.html5rocks.com/en/tutorials/file/dndfiles/
しかし、関数を使用するときFileReader.readAsText(Blob|File, opt_encoding)
。取得したデータは、html フォームでエンコードされているのと同じようにエンコードされていません。
「multipart/form-data」にはどのエンコーディングが使用されていますか?サーバーに送信する前に、jquery または javascript を使用してデータをエンコードすることは可能ですか?
//編集
w3schools から: http://www.w3schools.com/html5/att_form_enctype.asp
multipart/form-data ==> 文字はエンコードされません。この値は、ファイル アップロード コントロールを持つフォームを使用している場合に必要です。
私が抱えている問題は、FileReader からデータを取得するときに、HTML フォーム データと同じデータではないことです。
同じ画像の場合: html フォームを使用:
\xff\xd8\xff\xe1\x00\x18Exif\x00\x00II*\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xec\x00\x11Ducky\x00\x01\x00\x04\x00\x00\x00U\x00\x00\xff\xe1\x03)http://ns.adobe.com/xap/1.0/\x00<?xpacket begin="\xef\xbb\xbf" id="W5M0MpCehiHzreSzNTczkc9d"?>...
FileReader.readAsText() を使用:
\xc3\xbf\xc3\x98\xc3\xbf\xc3\xa1\\u0000\\u0018Exif\\u0000\\u0000II*\\u0000\\b\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\xc3\xbf\xc3\xac\\u0000\\u0011Ducky\\u0000\\u0001\\u0000\\u0004\\u0000\\u0000\\u0000U\\u0000\\u0000\xc3\xbf\xc3\xa1\\u0003)http://ns.adobe.com/xap/1.0/\\u0000<?xpacket begin=\\"\xc3\xaf\xc2\xbb\xc2\xbf\\" id=\\"W5M0MpCehiHzreSzNTczkc9d\\"?>
同じデータを取得する方法は?