这篇文章给大家分享的是有关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 配置
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <multipart-config> <!--上传到/temp 目录--> <location>/temp/upload</location> <!--文件大小为2M--> <max-file-size>2097152</max-file-size> <!--整个请求不超过4M--> <max-request-size>4194304</max-request-size> <!--大于0M的所有文件都要写入磁盘--> <file-size-threshold>0</file-size-threshold> </multipart-config> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
配置类中配置
<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; }
感谢各位的阅读!关于Spring MVC如何处理Multipart/form-data就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
文章名称:SpringMVC如何处理Multipart/form-data-创新互联
转载注明:https://www.cdcxhl.com/article38/shspp.html
成都网站建设公司_创新互联,为您提供用户体验、品牌网站建设、网站设计公司、网页设计公司、手机网站建设、网站导航
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联