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 和 配置上传参数:


    
   
    ·  

         2、StandardServletMultipartResolver 的配置

(1)声明Bean:

<bean id=“multipartResolver”
    class="org.springframework.web.multipart.support.StandardServletMultipartResolver”>
@Bean(name = “multipartResolver”)
public StandardServletMultipartResolver getStandardServletMultipartResolver(){
return new StandardServletMultipartResolver();
}
            (2) 配置上传参数

~ web.xml 配置

View Code
              ~ 配置类中配置

@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
//上传到/temp 目录,文件大小为2M,整个请求不超过4M,且所有文件都要写入磁盘
registration.setMultipartConfig(new MultipartConfigElement(“E:\temp”,2097152,4194304,0));
}

二、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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值