Formを使ったアップロード

最終更新日時:2014-03-28 22:22:52
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

お問い合わせは 掲示板 にて。