现在的位置: 首页 > 综合 > 正文

spring2.5 mvc使用注解upload上传文件

2013年03月23日 ⁄ 综合 ⁄ 共 1600字 ⁄ 字号 评论关闭

 对于spring mvc来说2.0以后大量使用注解确实简单很多,最近在一个项目使用spring mvc遇到上传文件问题,由于使用了注解所以网上没有找到相关使用注解上传文件的。官方文档又没有更新都是老的,看了一些源码这才解决。
使用注解很简单。
写个例子:控制器类 FileUploadController.java

  1. package org.upload.test;  
  2.    
  3. import org.springframework.stereotype.Controller;  
  4. import java.io.FIle;  
  5. import org.springframework.web.bind.annotation.RequestParam;  
  6. import org.springframework.web.multipart.MultipartFile;  
  7. /** 
  8.  * FileUploadController for the file upload . 
  9.  * 
  10.  * @author lhbdir 
  11.  * @since 09.01.2008 
  12.  */  
  13. @Controller  
  14. public class FileUploadController {  
  15.   @RequestMapping("/imageUpload")  
  16.    public String processImageUpload(  
  17.      @RequestParam("imageFile") MultipartFile image) throws IOException {  
  18.          FileCopyUtils.copy(image.getBytes(),new File("c:/"+image.getOriginalFilename()));  
  19.      return "imageList";  
  20.    }  
  21.  }  

 

@RequestParam("imageFile") MultipartFile image 是注解映射页面上传文件标签name属性,
页面 imageList.jsp里的内容,加上下面的就可以了。

  1. <table border="1" cellspacing="0" cellpadding="5">  
  2. <form action="imageUpload" method="post" encType="multipart/form-data">  
  3.   <tr<td>Content</td><td> <input type="imageFile" name="image">  
  4. <br></td></tr>  
  5.   <tr><td colspan="2"><input type="submit" value="Upload image"></td></tr>  
  6. </form>  
  7. </table>  

 

<input type="file" name="imageFile">此标签name与控制器类注解要一样.
下面的配置文件要写好,web.xml跟applicationContext.xml不用加什么跟正常的spring mvc一样配置就可以了,
servletName-servlet.xml (servletName是你配置在web.xml里的,不明白的去看一下spring MVC配置文档)

里加入以下代码做文件上传类的绑定:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

别忘了加入commons里的fileupload跟io两个JAR包,这样就可以了。

抱歉!评论已关闭.