formタグのenctype属性についてのメモ
formタグではenctypeに以下の値を指定することによってフォームデータの送信方法を指定する。
- application/x-www-form-urlencoded
- multipart/form-data
application/x-www-form-urlencoded
formの値がurlパラメータとして送信される。
enctypeを省略した場合は、この値になる。
ただし、フォームデータにファイルを含む場合、application/x-www-form-urlencodedでは送信できない。
multipart/form-data
このエンコードで送られたフォームのデータは、URLエンコードではなく、次のようなMIMEのマルチパートデータとしてプログラムに届きます。
Content-Type: multipart/form-data; boundary=-AabbZ
---AabbZ
Content-Disposition: form-data; name="username"Masahide Kanzaki
---AabbZ
Content-Disposition: form-data; name="submitfile"; filename="myfile.txt"
Content-Type: text/plainThis is a sample file....
(ファイルの中身)
---AabbZ--マルチパートのデータは、この例のように「境界(boundary)」となる行でデータ項目が区切られ、それぞれがContent-Dispositionという説明情報などのあとに実際のデータが続くという形を取ります。処理方法の詳細はここでは取り上げませんが、このようにするとユーザーにオンラインで情報を入力してもらわなくても、あらかじめ必要事項を書き込んだファイルを用意してもらい、それをアップロードしてもらうという手段が提供できます(MIMEのマルチパートの詳細に
ついてはRFC 2045を参照)。
エンコードのタイプとファイル送信 フォームデータの送信 -- ごく簡単なHTMLの説明