Rumah >Java >javaTutorial >Spring MVC处理Multipart/form-data的方法介绍(代码示例)
本篇文章给大家带来的内容是关于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和配置上传参数:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="uploadTempDir" value="/temp"/> <!--设置上传目录/temp --> <property name="maxUploadSize" value="2097152"/> <!--最大文件容量设置为2M--> <property name="maxInMemorySize" value="0"/> · <!--最大的内存大小设置为0,超过0就写入磁盘--> </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 配置
46309ed845064fdb06e746051efff9e0 700b5f17c4d842e4bd410f680f40946bdispatcherServlet72eca723e64ddd01187c8b4d58572fcb b472d9135dbff3dd7fcc77f5995c97d0org.springframework.web.servlet.DispatcherServlet4f01b97d64aea37f699ead4eb7bd2bbd 380fae52cc7d04565d26dd4bbf4b5460 c13d9669d2c8f87a36a39c8f95f41552contextConfigLocation02b9ad8b27bc78bd91c18db845cdde4a f226acac8cb0e4a9d59fcba58b57a899classpath:applicationContext.xml22c8aeb51b7638a9da01bd5a66154ac1 8f161518881ffd7712eaaadc573a3556 4781e2cbaa93c386271b418d3a01af0813065abc64b27fbca30c0905ab93e8ea0 d589bc550fddbf4e1467769008c79743 9b8d0b7dec66249828adf6eecce57e56 9d68f4d645dd62cd4e002580b75a8b85/temp/uploadeb393cd7f0c41cf1136847ec1779eae4 54275ace0e53d1f05148c4d2fb4d0f8e 264118c81acaa0ed957102901d0217092097152ccfecdf06d7a6c119cfa2f6998f9193e a985a73358dc1c27afd267b67e0895bb d8826ad457eb4d4bfe6313ea1e725b6d4194304b5b1d78b07ce9edb1c40391f708a85d6 03810b98d7aeeaebe728da27093c7397 cfba4a0d5e51fea799b9e49d4b3e2e86043463aa0839dd2d81701d30ccbcc8b17 bd01001af9e9d0ca8b1d333acf597655 20d42bb762ac7d7e594da3a264e47fcc 870ae7edaa11700bcea972d006efb06e 700b5f17c4d842e4bd410f680f40946bdispatcherServlet72eca723e64ddd01187c8b4d58572fcb 66e1775cbd9d5002635ae3285442ba88/3ec4a5583206d351b61ed79c1a0f9c66 cb808b0e21d3ee32c89fe10adc3f12ec
配置类中配置
<form action="/save" method="post" enctype="multipart/form-data"> <input type="file" name="pic"> <input type="submit"> </form>
二、Spring MVC 处理
1、表单:
<form action="/save" method="post" enctype="multipart/form-data"> <input type="file" name="pic"> <input type="submit"> </form>
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; }
Atas ialah kandungan terperinci Spring MVC处理Multipart/form-data的方法介绍(代码示例). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!