码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC 文件上传

时间:2015-06-02 23:21:34      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:

1、SpringMVC文件上传简介

  在SpringMVC中,文件上传功能可以由即插即用的CommonsMultipartResolver解析器组件实现,它定义在org.springframework.web.multipart包里。Spring提供的CommonsMultipartResolver解析器可以支持Commons FileUpload和COS FileUpload两种上传组件。

2、CommonsMultipartResolver组件

  CommonsMultipartResolver解析器组件可以调用common-fileUpload.jar的功能,将请求提交的文件信息解析出来,该组件使用步骤如下

    引入common-fileupload.jar和common-io.jar开发包

    在Spring配置文件中添加CommonsMultipartResolver组件的bean定义

  <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

3、视图表单实现

  在JSP视图表单中,<form>标记必须追加enctype="multipart/form-data"设置,指定表单数据的提交格式。默认情况,提交格式是application/x-www-form-urlencoded,不能用于文件上传;必须使用multipart/form-data设置才可以。

  method属性也必须设置为post方式提交

4、Controller实现

  在Controller处理方法中,可以使用@RequestParam注解将CommonsMultipartResolver解析出的文件赋值给MultipartFile参数对象,该对象包含了上传的文件信息。

  @RequestMapping(value="/upload.form)

  public String upload(@RequestParam(value="file",required=false)MultipartFile file,HttpServletRequest request,ModelMap model){

    //TODO将file文件对象保存到指定目录下

  }

5、限制上传文件大小

  CommonsMultipartResoler解析器可以设置对上传文件的大小的限定,配置示例如下

  <bean id="multipartResolver" 
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="51200"></property>

  </bean>

  当设置了maxUploadSize大小限制后,如果上传文件大于指定指定大小,会抛出MaxUploadSizeExceededException异常,可以采用异常处理给客户显示友好提示。

  在处理上传的Controller组件中定义@ExceptionHandler异常处理方法

  @ExceptionHandler异常处理

  @ExceptionHandler

  public ModelAndView doException(Exception ex){

    Map<String,Object> model=new HashMap<String,Object>();

    if(ex instanceof MaxUploadSizeExeededException){

      long size=((MaxUploadSizeExceededException)ex).getMaxUploadSize();

      model.put("errors","文件应小于"+size+"字节");

    }else{

      model.put("error","未知错误:"+ex.getMessage());

    }

    return new ModelAndView("upload",model);

  }

  提示:CommonsMultipartResolver的resolveLazily属性指定为true,将文件解析延迟,才能触发上面的异常处理。

6、

 

SpringMVC 文件上传

标签:

原文地址:http://www.cnblogs.com/Crow00/p/4547887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!