springmvc 文件上传

1.springmvc文件上传功能,使用的是apache提供的文件上传组件

    commons-fileupload-xxx.jar

    commons-io-xxx.jar

2.在springmvc的配置文件中,添加文件上传解析器

           <!-- 文件上传解析器 -->
           <bean id="multipartResolver"
                        class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
                        p:maxUploadSize="34564356345456"
                        p:defaultEncoding="utf-8">
                        <!-- <property name="defaultEncoding" value="utf-8"></property> -->
           </bean>

3.在jsp页面中做如下设置

     form标记的enctype属性值必须为:multipart/form-data

     form标记的method属性值必须为:post

     文件上传使用的html标记为:<input type="file" name="xxx" />

4.在springmvc的控制器方法中,添加MultipartFile参数

             @RequestMapping(value={"/add", "/insert"}, method={RequestMethod.POST})
             public String add(String goodsName, MultipartFile photo, HttpServletRequest request){

                       //判断是否上传了文件
                       if(photo.isEmpty()==false){
                               try{
                                          //保存的路径 c:Program Filesapache tomcat 7.0webappsspringmvc_2016110102files
                                          //获取files文件夹的绝对路径
                                          String path = request.getServletContext().getRealPath("files");
                                          String filePath = path +"/"+photo.getOriginalFilename();
                                          //存储文件
                                          photo.transferTo(new File(filePath));
                                 }catch(Exception ex){
                                            ex.printStackTrace();
                                 }
                       }

                        return "goods/list";
           }

注意:为了避免上传的文件,因为文件名相同造成被覆盖的问题,可以将存储的新文件名称按uuid来命名。

         对于多文件上传的情况,只需要在控制器方法中添加MultipartFile[]数组参数即可。

原文地址:https://www.cnblogs.com/Lchao/p/6491141.html