Formを使ったアップロード
最終更新日時:2014-03-28 22:22:52
Web系
Web系
RFC1867 で記載されています。
http://www.ietf.org/rfc/rfc1867.txt
上記を読めばいいのですが、ヘッダ部分以外は、実際に POST で流れてくるデータを表示するような CGI か何かを作って表示すれば一目瞭然です。
ちなみに、ヘッダ部分では、Content-type としてマルチパートである旨とバウンダリを指定を行います。
以下のような感じですね。
Content-type: multipart/form-data, boundary=15292259927742
POST で流れてくるデータの例です。
この例では、ファイルのアップロードとパラメータが混在しています。
-----------------------------15292259927742 Content-Disposition: form-data; name="val1" val1 -----------------------------15292259927742 Content-Disposition: form-data; name="val2" val2 -----------------------------15292259927742 Content-Disposition: form-data; name="val3" val3 -----------------------------15292259927742 Content-Disposition: form-data; name="val54" val4 -----------------------------15292259927742 Content-Disposition: form-data; name="val5" val5 -----------------------------15292259927742 Content-Disposition: form-data; name="file"; filename="test.csv" Content-Type: text/x-comma-separated-values a,b,c,d,e,f,g,h 1,2,3,4,5,6,7,8 ...
その他、ファイルアップロード時に2つのファイルがアップロードされた場合等もありますが、そのあたりも含めて以下のサイトでわかりやすく解説されています。
http://www.javadrive.jp/servlet/fileupload_tutorial/index2.html