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              否


 

posted @ 2022-10-04 00:14  IT情深  阅读(315)  评论(0编辑  收藏  举报