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>
2.StandardServletMultipartResolver Configuration
(1)Declare Bean:
<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver”>
@Bean(name = "multipartResolver") public StandardServletMultipartResolver getStandardServletMultipartResolver(){ return new StandardServletMultipartResolver(); }
(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>
Configuration in configuration class
<form action="/save" method="post" enctype="multipart/form-data"> <input type="file" name="pic"> <input type="submit"> </form>
2. Spring MVC processing
1. Form:
<form action="/save" method="post" enctype="multipart/form-data"> <input type="file" name="pic"> <input type="submit"> </form>
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; }
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!