springMVC上传文件

cloudspring 2014-08-19

    在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的,这可以方便我们实现自己的文件上传。但如果 你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的applicationContext里面加上 springMVC提供的MultipartResolver的申明。这样之后,客户端每次进行请求的时候,springMVC都会检查request里 面是否包含多媒体信息,如果包含了就会使用MultipartResolver进行解析,springMVC会使用一个支持文件处理的 MultipartHttpServletRequest来包裹当前的HttpServletRequest,然后使用 MultipartHttpServletRequest就可以对文件进行处理了。Spring已经为我们提供了一个MultipartResolver 的实现,我们只需要拿来用就可以了,那就是 org.springframework.web.multipart.commons.CommsMultipartResolver。因为 springMVC的MultipartResolver底层使用的是Commons-fileupload,所以还需要加入对Commons- fileupload.jar的支持。

@Controller  
public class FileUpoadController {  
  
    @RequestMapping(value = "/form", method = RequestMethod.POST)  
    public String handleFormUpload(@RequestParam("name") String name,  
        @RequestParam("file") MultipartFile file) {  
        //MultipartFile是对当前上传的文件的封装,当要同时上传多个文件时,可以给定多个MultipartFile参数  
        if (!file.isEmpty()) {  
            byte[] bytes = file.getBytes();  
            // store the bytes somewhere  
           //在这里就可以对file进行处理了,可以根据自己的需求把它存到数据库或者服务器的某个文件夹  
  
           return "redirect:uploadSuccess";  
       } else {  
           return "redirect:uploadFailure";  
       }  
    }  
  
} 

相关推荐