Spring MVC 文件上传

来源:互联网 发布:软件测试怎么学 编辑:程序博客网 时间:2024/05/17 04:18

步骤一:

在spring的配置文件中applicationContext.xml中添加,上传使用的spring bean.

  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">     <property name="maxUploadSize" value="104857600" />     <property name="maxInMemorySize" value="4096" />     <property name="defaultEncoding" value="UTF-8"></property>  </bean>


步骤二:

前端代码:此处enctype="multipart/form-data" 这个地方记得一定要加!!!

 <form action="/auth/importUser"  id="form1" method="post"  name="form_input" enctype="multipart/form-data" >      <div class="left" ><img src="images1/ico03.gif" width="82" height="82" /></div>      <div class="right" >        <div class="right01" >          <div class="right0101" >客服号码文件:</div>          <div class="right0102" >            <input type="file" name="file_name" id="file_name"/>                   </div>          <div class="right02">          <input  id="import_user"  type="button"   value=""    />         </div>           <div class=" font01 right02 " >           <a href="/demo_data/demo_user.xls" target="_blank">示例文件下载</a>           </div>        </div>       </div>      </form>


步骤三:

后台代码:

@RequestMapping(value="/importUser")@SuppressWarnings("rawtypes") public String  springUpload(HttpServletRequest request) throws Exception    {              //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)        CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(                request.getSession().getServletContext());        //检查form中是否有enctype="multipart/form-data"        if(multipartResolver.isMultipart(request))        {            //将request变成多部分request            MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;           //获取multiRequest 中所有的文件名            Iterator iter=multiRequest.getFileNames();                         while(iter.hasNext())            {                //一次遍历所有文件                MultipartFile file=multiRequest.getFile(iter.next().toString());                if(file!=null)                {                    String path=file.getOriginalFilename();                    //上传                    file.transferTo(new File(path));                }                             }                   }            return "/success";      }

这种上传文件的方式,简单明了,而且代码的易读性相对较高.




上面红色字体表示:文件将以二进制格式提交.

0 0