Spring MVC文件的上传

来源:互联网 发布:紧急通知最新域名升级 编辑:程序博客网 时间:2024/05/18 01:09

java原本的文件上传使用起来不太方便,由于项目使用的是Spring MVC框架,在做文件上传的时候,就试用了一下Spring MVC的文件上传,蛮方便的。下面是具体做法:

首先要更改web.xml中的配置,具体如下:

<servlet>    <servlet-name>appServlet</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <!-- 文件上传 -->    <load-on-startup>1</load-on-startup>      <init-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath:spring/appServlet/servlet-context.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup>  </servlet>


 

要配置注释下面的那一行;

接下来要更改spring 配置文件,如下:

<!-- 文件上传 --><beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">              <beans:property name="maxUploadSize" value="1024000000"/>              <beans:property name="resolveLazily" value="true"/>              <beans:property name="maxInMemorySize" value="4096"/>          </beans:bean>  


在spring配置文件中加上类似上面这段,其实就是定义一个bean;

在这提醒下,别忘了加上commons-fileupload.jar和commons-io.jar这俩jar包,我就因为少了这俩jar包,浪费了不少时间去调试;

 

下面则是在页面上加上enctype="multipart/form-data",这个是一样的;

最后就是在Controller类方法中的配置了,我贴一个处理function,以便参考:

@RequestMapping(value = "/web/productController/doSave", method = RequestMethod.POST)private  String doSave(ProductRequestBean reqBean,@RequestParam("icon") MultipartFile icon,@RequestParam("document") MultipartFile document,HttpServletRequest request,Model model) throws IllegalStateException, IOException {//上传产品ICONif(!icon.isEmpty()) {String iconPath = request.getSession().getServletContext().getRealPath("resources/icon");String iconName = icon.getOriginalFilename();String strs[] = iconName.split("[.]");String iconRealName = id+"."+strs[1];File targetFile = new File(iconPath, iconRealName);        if(!targetFile.exists()){            targetFile.mkdirs();        }    icon.transferTo(targetFile);    String iconUrl = request.getContextPath()+"/resources/icon/"+iconRealName;    product.setIconUrl(iconUrl);}}


 

上面的icon和document就是我在界面上上传的input的name,方法中我只贴出来icon的上传,document差不多。
原创粉丝点击