说明:支持多文件上传,但是有时候上传了多个文件,后台获取时候不知道某个文件在前台页面的是那个属性,比如我这上传的有:合同文档,数据报表,验收报告。后台可以拿到这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");
}
}
}