Servlet - 3.0下用@MultipartConfig注解方式上传文件详解
Servlet3.0之前上传文件通常借助commons-fileupload-xxx.jar和commons-io-xxx.jar两个jar包,其中相关的API较多,写起来非常不便。而在Servlet3.0时,改进了部分API,可以通过@MultipartConfig注解以及相关的方法比较方便的进行文件上传。
一.常用的与文件上传相关的API与注意点:
1.HttpServletRequest提供的方法
- Part getPart(String name):根据名称获取文件上传域
- Collection<Part> getParts():获取所有的文件上传域
2.Part中常用的方法
- String getContentType():获取上传文件的文件类型
- long getSize():上传文件的大小
- String getSubmittedFileName():上传文件的原始文件名
- String getName():获取<input name="upload" ...>标签中name属性值
- String getHeader(String name):获取请求头部
- Collection<String> getHeaderNames():获取所有请求头部名称
- InputStream getInputStream():获取上传文件的输入流
- void write(String path):保存文件至服务器
3.表单enctype属性说明
在使用<input type="file" name="upload">标签时,需要设置enctype="multipart/form-data",指定表单数据的编码方式。enctype属性值说明:
- application/x-www-form-urlencoded:默认编码方式,只处理表单中的value属性值,这种编码方式会将表单中的值处理成URL编码方式
- multipart/form-data:以二进制流的方式处理表单数据
- text/plain:当表单action属性为mailto:URL形式时比较方便,适用于直接通过表单发送邮件方式
4.@MultipartConfig注解属性说明
属性 类型 是否必需
maxFileSize long 否
maxRequestSize long 否
fileSizeThreshold int 否
location String 否
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751821.html