参考资料:
(1)RFC 1867
(2)Java Servlet Specification 3.1;
(3)《Java Web高级编程》;
1. Multipart FormData
Multipart是HTML中表单文件上传的基本格式,一般通过如下方法可以通过HTTP上传文件:
<form action="_URL_" method="POST" enctype="multipart/form-data">
<input type="text" name="username" />
<input type="file" name="userfile1" />
<input type="submit" value="submit" />
</form>
有两个地方是使用Multipart的关键:
(1)对于POST请求来说,enctype的默认值是application/x-www-form-urlencoded,而这里要是用multipart/form-data
;
(2)<input />
的type设置为file
;
1.1 Multipart的数据格式
基于Multipart,请求的每个部分都有指定的边界分隔开,都有一个值为form-data的Content-Disposition和匹配表单输入名称的name。
如果是文件类型字段,还将有filename,匹配MIME类型的Content-Type;
使用下面的表单提交单个文件和其他文本域:
测试1:单文件上传
<form action="/s/upload/1" method="post" enctype="multipart/form-data">
<fieldset>
<legend>测试1:单文件上传</legend>
<p><label for="name">名称 </label><input id="name" type="text" name="name" /></p>
<p><label for="files">文件 </label><input id="files" type="file" name="files" /></p>
<p><label for="location">地区 </label><input id="location"