SpringMVC如何处理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 配置

<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。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设