本篇文章给大家带来的内容是关于Spring MVC处理Multipart/form-data的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
Multipart/form-data
Multipart/form-data 为表单的MIME编码属性之一,共有三个值
① application/x-www-form-urlencoded
② multipart/form-data
③ text/plain
①为Html表单默认传输编码类型
②是表单上传的非文本的内容,传递的是文件数据,设置该属性再配合post请求方式从而实现文件上传
③是传输为纯文本的意思,在发邮件时要设置这种编码,拿text/plain和text/html做比较,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上
上述所提到的MIME,它的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议。通过MIME,浏览器的再请求,会告诉服务器接收的数据是什么类型.
Spring MVC 处理 Multipart/form-data
两种实现方式:
1、CommonsMultipartResolver : 依赖于Apache
2、StandardServletMultipartResolver : 依赖于Servlet 3.0 ,SpringBoot默认支持该方式
一、配置解析器
1、CommonsMultipartResolver 的配置
弊端:无法设置请求整体的最大容量
(1)声明Bean和配置上传参数:
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
·
2、StandardServletMultipartResolver 的配置
(1)声明Bean:
class="org.springframework.web.multipart.support.StandardServletMultipartResolver”>@Bean(name = "multipartResolver")
public StandardServletMultipartResolver getStandardServletMultipartResolver(){
return new StandardServletMultipartResolver();
}
(2) 配置上传参数
web.xml 配置
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext.xml
1
/temp/upload
2097152
4194304
0
dispatcherServlet
/
配置类中配置
二、Spring MVC 处理
1、表单:
2、MVC接收:@RequestMapping(value = "/save",method = RequestMethod.POST)
public String getHome(MultipartFile pic) throws IOException {
Files.copy(pic.getInputStream(), Paths.get(ServletContext.getRealPath("/temp"),pic.getOriginalFilename));
return null;
}