一.上传
1.上传对表单的限制
* 表单的提交方式必须为post,即method="post"
* 表单必须有一个属性enctype="multipart/form-data",在form标签上添加
* 必须添加文件表单项,比如:<input type="file" name="xxx" .../>
2.上传对servlet的限制
* 当表单有enctype="multipart/form-data"时,request.getParametere()整个方法作废了,它的返回值永远时是null,对所有表单项失效
* 想获取表单的值以及上传的文件内容,可以通过一个流:request.getInputStream(),这个流包含了整个请求的体
二.多部件表单(添加了enctype="multipart/form-data")的请求体
1.请求体由多个部件的格式组成,每一个部件对应一个表单项
2.每一个部件由属于自己的请求头,空行和请求体
3.普通表单项
* 普通表单项有一个头:Content-disposition,包含了name="xxx",即表单项名称,它的体是表单项的值
4.文件表单项
*文件表单项有两个头:
Content-disposition,包含了name="xxx",即表单项名称,还有filename="xxx",即上传文件的名称
Content-Type,表示该上传文件的MINE类型,例如:image/jpeg,表示上传的是图片,图片类型是jpg的拓展名称
*它的体是上传文件的内容(内容进行了编码处理后)