html5 的 input file支持 multiple="multiple"属性,这个属性可以使一个input file里选择多个文件上传,但在spring MVC后台要如何获取呢,spring MVC对着中情况提供了支持
具体看代码
public void index(HttpServletRequest req, HttpServletResponse resp) throws IOException{
resp.setContentType("text/html;charset=UTF-8");
if(req instanceof MultipartHttpServletRequest){
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) req;
//取出一个list的multipartfile
List<MultipartFile> files = multipartRequest.getFiles("files");
for (MultipartFile multipartFile : files) {
System.out.println(multipartFile);
}
resp.getWriter().print(files.size());
}else{
resp.getWriter().print("非法请求");
}
}
这种情况取法同样可以兼容一个form表单里面有多个相同name属性的input file,比如:
<form action="${contextPath}/Test.mc?method=index" method="post" enctype="multipart/form-data">
<input type="file" multiple="multiple" name="files" /> <br>
<input type="file" multiple="multiple" name="files" /> <br>
<input type="submit" value="提交" />
</form>
如果在第一个input file选择两个文件,第二个input file选择两个文件,可以看到后台的list里面工取得了4个multipartFile。