说明:支持多文件上传,但是有时候上传了多个文件,后台获取时候不知道某个文件在前台页面的是那个属性,比如我这上传的有:合同文档,数据报表,验收报告。后台可以拿到这3个 文件,但是这个是怎么对应的呢?如果多传了还好一一对应,但是如果前台只上传了验收报告,怎么办?下面这个方法就能很好的解决了这个问题。

后台接收的controller写法

@RequestMapping("getTest")

   public voidgetTest(HttpServletRequest request){

      //转成文件上传请求

      MultipartHttpServletRequestmurequest=(MultipartHttpServletRequest)request;

      //在文件上传请求中获取文件,根据file的name

      List<MultipartFile>files=murequest.getFiles("hetong");//前台input的name=hetong;

      for(inti=0;i<files.size();i++){

         if(!files.get(i).isEmpty()){

            System.out.println("files===="+i);//文件不为空,可以进行上传操作了

         }else{

            System.out.println("filesempty===="+i);

         }

      }

      List<MultipartFile>imgs=murequest.getFiles("baobiao");//前台input的type=baobiao;

      for(inti=0;i<imgs.size();i++){

         if(!imgs.get(i).isEmpty()){

            System.out.println("imgs===="+i);

         }else{

            System.out.println("imgsempty===="+i);

         }

      }

   }

多文件上传的另一种方法:@RequestParam必须加

public voidupload(HttpServletRequest request,@RequestParamMultipartFile[] file,@RequestParam MultipartFile[] img){

      for(MultipartFile f:file){

         if(!f.isEmpty()){

            System.out.println("file====isnotempty");

         }else{

            System.out.println("file====isempty");

         }

      }

      for(MultipartFile f:img){

         if(!f.isEmpty()){

            System.out.println("img====isnotempty");

         }else{

            System.out.println("img====isempty");

         }

      }

   }