文件上传
1.客户端编程
要上传文件,必须利用mutipart/form-data 设置HTML表单的enctype 属性值
<form action="action" enctype="mutipart/form-data" method="post">
Select a file <input type="file" name="fileName"/>
<input type="submit" value="Upload">
</form>
如果想上传多个文件,则不得不使用文件input元素,在input元素加入multipel属性 ,以便生成一个按钮供选择多个文件
<input type="file" name="fileName" mutipel/>
<input type="file" name="fileName" mutipel="multipel"/>
<input type="file" name="fileName" mutipel=""/> 同样效果
2. 服务器端编程
Sevlet中的服务器处理上传文件的Servlet必须用 @MutipartConfig 进行标注。
MutipartConfig带有下面几个属性:
maxFileSize: 表示可上传文件的容量。默认为-1,表示不受限制
maxRequestSize:表示允许多部分HTTP请求的最大容量。默认为-1,表示不受限制
location:将上传的文件保存到磁盘中的指点位置,调用Part的write方法将用到它
fileSizeThreshold:设定一个溢出尺寸,超过这个值之后,上传的文件将被写入磁盘
在一个有多部分组成的请求中,标一个表单域,包括非文件域,都会被转换成一个Part
HttpServletRequest 接口定义了以下方法来处理多部分的请求:
Part getPart (String name) :返回指点名称的Part
Collection getParts() :返回这个请求的所有PART
Part接口还有以下的方法
String getName() 返回与指定部分有关的域名称,非文件名称(要想获取文件名称,需要解析content-disposi