1、文件上传
1)上传文件对表单的限制
1. method="post"
2. enctype="multipart/form-data" //多部件表单数据
3. 表单中需要添加文件表单选项:<input type="file" name="xxx" />
2)上传文件对Servlet的限制
1.不能使用request.getParameter("xxx");来获取表单参数
//因为此方法返回值为字符串。
2.获取表单参数方法:ServletInputStream request.getInputStream();
//包含整个请求的体!
eg:
<form action="" method="post" enctype="multipart/form-data">
用户名;<input type="text" name="username"/><br/>
照 片:<input type="file" name="zhaoPian"/><br/>
<input type="submit" value="上传"/>
</form>
2、不同表单结构介绍:
1)多部件表单的体
分割出多个部件。即一个表单项一个部件。
每个部件包含:请求头、空行、、请求体。
2)普通表单项:
1个头:
Content-Disposition:包含name="xxxx",即表单项名称。
体:表单项的值
3)文件表单项:
2个头:
Content-Disposition:包含name="xxxx",即表单项名称;
filename="xxx",表示上传文件的名称
Content-Type:它是上传文件的MIME类型,例如:image/pjpeg,表示上传的是图片,图上中jpg扩展名的图片。
体:上传文件的内容。
解析文件的jar包:
commons-fileupload.jar
commons-io.jar //依赖包
此包会帮我们解析request的上传数据
解析结果:将每个表单项数据单独封装