Home > Java > javaTutorial > Introduction to Spring MVC's method of processing Multipart/form-data (code example)

Introduction to Spring MVC's method of processing Multipart/form-data (code example)

不言
Release: 2019-02-22 13:43:24
forward
6869 people have browsed it

This article brings you an introduction to Spring MVC’s method of processing Multipart/form-data (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. .

Multipart/form-data

Multipart/form-data is one of the MIME encoding attributes of the form, with a total of three values

① application/ x-www-form-urlencoded

② multipart/form-data

③ text/plain

①The default transmission encoding type for Html form

② It is the non-text content uploaded by the form, and what is passed is file data. Set this attribute and cooperate with the post request method to achieve file upload.

③It means to transmit it as plain text. This should be set when sending emails. For encoding, compare text/plain and text/html. The former is used to transmit plain text files, while the latter is the encoding type for transmitting html codes. The above mentioned are only used when sending header files.

MIME, its full English name is "Multipurpose Internet Mail Extensions" Multipurpose Internet Mail Extensions Service, it is a multipurpose Internet Mail Extensions protocol. Through MIME, the browser's re-request will tell the server what type of data it receives.

Spring MVC handles Multipart/form-data

Two implementation methods:

1. CommonsMultipartResolver: Depends on Apache

2. StandardServletMultipartResolver: Depends on Servlet 3.0, SpringBoot supports this method by default

1. Configure the parser

1. Configuration of CommonsMultipartResolver

Disadvantages: Unable to set the maximum capacity of the entire request

(1) Declare Bean and configure upload parameters:

<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>
Copy after login

2.StandardServletMultipartResolver Configuration

(1)Declare Bean:

<bean id="multipartResolver" 
class="org.springframework.web.multipart.support.StandardServletMultipartResolver”>
Copy after login
@Bean(name = "multipartResolver")
public StandardServletMultipartResolver getStandardServletMultipartResolver(){
          return new StandardServletMultipartResolver();
          }
Copy after login

(2) Configure upload parameters

web.xml configuration

<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>
Copy after login

Configuration in configuration class

<form action="/save" method="post" enctype="multipart/form-data">
          <input type="file" name="pic">
          <input type="submit">
</form> 
Copy after login

2. Spring MVC processing

1. Form:

  <form action="/save" method="post" enctype="multipart/form-data">
          <input type="file" name="pic">
          <input type="submit">
   </form>
Copy after login

2. MVC reception:

@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;
    }  
Copy after login

The above is the detailed content of Introduction to Spring MVC's method of processing Multipart/form-data (code example). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template