SpringMVC multipart文件上传

简介: 一、介绍   spring内建的multipart支持网络程序文件上传。我们可以通过配置MultipartResolver来启动上传支持。它定义在org.springframework.web.multipart包中。

一、介绍
   spring内建的multipart支持网络程序文件上传。我们可以通过配置MultipartResolver来启动上传支持。它定义在org.springframework.web.multipart包中。spring是通过使用Commons FileUpload插件来完成MultipartResolver的。
   默认情况下,spring不处理multipar的form信息,因为开发者默认会自己去处理这部分信息,当然我们可以随时打开这个支持。这样对于每一个请求,都会查看它是否包含multipart的信息,如果没有则按流程继续执行。如果发现有,就会交给已经被声明的MultipartResolver进行处理,然后我们就能像处理其他普通属性一样处理文件上传了。
二、使用MultipartResolver
  下面的例子显示了如何使用CommonsMultipartResolver

[html]  view plain copy
 
  1. <bean id="multipartResolver"  
  2.     class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
  3.   
  4.     <!-- one of the properties available; the maximum file size in bytes -->  
  5.     <property name="maxUploadSize" value="100000"/>  
  6. </bean>  

当然,我们要把所需的jar包放到lib中, 就是commons-fileupload.jar.

三、处理一个文件上传的form
   当MultipartResolver处理完成以后,请求被处理成和普通请求一样。下面是页面文件。

[html]  view plain copy
 
  1. <html>  
  2.     <head>  
  3.         <title>Upload a file please</title>  
  4.     </head>  
  5.     <body>  
  6.         <h1>Please upload a file</h1>  
  7.         <form method="post" action="/form" enctype="multipart/form-data">  
  8.             <input type="text" name="name"/>  
  9.             <input type="file" name="file"/>  
  10.             <input type="submit"/>  
  11.         </form>  
  12.     </body>  
  13. </html>  

下一步是创建一个controller来处理文件上传。controller也和其他的一样,除了在我们的方法参数中使用MultipartHttpServletRequest或者MultipartFile。

[java]  view plain copy
 
  1. @Controller  
  2. public class FileUpoadController {  
  3.   
  4.     @RequestMapping(value = "/form", method = RequestMethod.POST)  
  5.     public String handleFormUpload(@RequestParam("name") String name,  
  6.         @RequestParam("file") MultipartFile file) {  
  7.   
  8.         if (!file.isEmpty()) {  
  9.             byte[] bytes = file.getBytes();  
  10.             // store the bytes somewhere  
  11.            return "redirect:uploadSuccess";  
  12.        } else {  
  13.            return "redirect:uploadFailure";  
  14.        }  
  15.     }  
  16.   
  17. }  

最后,我们要声明我们的controller和multipar解析器

[html]  view plain copy
 
  1. <beans>  
  2.     <bean id="multipartResolver"  
  3.         class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>  
  4.     <!-- Declare explicitly, or use <context:annotation-config/> -->  
  5.     <bean id="fileUploadController" class="examples.FileUploadController"/>  
  6.   
  7. </beans>   

--------------------------

如果你对java、swing、各种框架、javascript、css、linux、数据库编程等知识很感兴趣,或者正在从事这些工作,请加入我建的群:464696550

目录
相关文章
|
XML 存储 Java
第7章—SpringMVC高级技术—处理multipart形式的数据
处理multipart形式的数据 MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件。
1314 0
|
前端开发 Java Spring
SpringMVC处理multipart请求.
一、简述     multipart格式的数据会将一个表单拆分为多个部分(part),每个部分对应一个输入域。在一般的表单输入域中,它所对应的部分中会放置文本型数据,但是如果上传文件的话,它所对应的部分可以是二进制。
1568 0
|
1月前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
7天前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
14 1
|
10天前
|
前端开发 Java 应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
|
1天前
|
XML Java 数据格式
SpringMVC的XML配置解析-spring18
SpringMVC的XML配置解析-spring18
|
1天前
|
应用服务中间件
从代码角度戳一下springMVC的运行过程-spring16
从代码角度戳一下springMVC的运行过程-spring16
|
1月前
|
前端开发 Java 关系型数据库
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
|
1月前
|
移动开发 Java 测试技术
Spring MVC+Spring+Mybatis实现支付宝支付功能(附完整代码)
Spring MVC+Spring+Mybatis实现支付宝支付功能(附完整代码)
51 1
|
8月前
|
前端开发 Java Go
Spring MVC 和 Spring Boot 的区别
Spring MVC 和 Spring Boot 的区别
146 0