一、javax.servlet.http中Part接口
public interface Part
要上传文件必须使用multipart/form-data作为request body。
版本:
Servlet 3.1 - Apache Tomcat 8.0.33
二、方法概述
方法 | 描述 |
void delete() | 删除磁盘上关于此part对象的缓存文件 |
java.lang.String getContentType() | 获取浏览器传递过来的ContentType |
java.lang.String getHeader(java.lang.String name) | 获取浏览器传递过来的特定的header,参数是header的名字 |
java.util.Collection getHeaderNames() | 获取传递给这个part的所有header的名字 |
java.util.Collection getHeaders(java.lang.String name) | 获取该name对应的所有的value |
java.io.InputStream getInputStream() | 获取InputStream对象,可以用于获取上传的文件的内容 |
java.lang.String getName() | 获取对应于此part的multipart表单的名字 |
long getSize() | 获取此part的大小,如果是上传文件的话,表示上传的文件大小 |
java.lang.String getSubmittedFileName() | 如果此part表示上传文件的话,返回上传的文件的名字 |
void write(java.lang.String fileName) | 一个比较方便的方法,将上传的文件写入磁盘中 |
三、@MultipartConfig注解
用于处理文件上传的servlet必须使用@MultipartConfig注解,@MultipartConfig注解有4个属性。
属性 | 类型 | 概述 |
fileSizeThreshold | int | 文件大小阀值,当文件大小大于此值时,文件将被写入磁盘 |
location | String | 服务器端目录,服务器把客户端上传的文件默认存入此目录下 |
maxFileSize | long | 允许上传的文件的最大大小,默认是-1,表示没有限制 |
maxRequestSize | long | 限制该multipart/form-data请求的最大数据量,默认是-1,表示没有限制 |
FileSize表示上传的一个文件的大小,RequestSize表示一次上传的总的数据量。简单来说,就是可以在一个表单中一次上传多个文件。
四、处理文件上传的servlet
五、前端html页面
servlet使用了注解的方式注册,所以不再需要使用web.xml文件。新建一个web工程,就使用这两个文件就可以部署到tomcat了,要访问的url是http://localhost:8080/UploadFileTest/UploadFile.html