我需要一次加载未知数量的文件。 我找到了一个例子,它适用于已知数量的文件:
标记:
<form method="POST" enctype="multipart/form-data">
<input name="files[0]" type="file" />
<input name="files[1]" type="file" />
<input type="submit" value="Send"/>
</form>
代码:
@RequestMapping(method = RequestMethod.POST)
public String savePhoto(@ModelAttribute("album") Album album, BindingResult result, SessionStatus status, MultiPartFileUploadBean file)
{
List<MultipartFile> images = file.getFiles();
for (MultipartFile photo : images) {
...
}
return "redirect:/albums/"+album.getId();
}
MultiPartFileUploadBean:
public class MultiPartFileUploadBean {
private List<MultipartFile> files;
public void setFiles(List<MultipartFile> files) {
this.files = files;}
public List<MultipartFile> getFiles() {
return files;}
}
是的,它有效,但我不知道用户想要如何在相册中上传照片。 我用:
<input name="files[]" type="file" multiple="multiple" />
我会收到错误。
请求处理失败;嵌套异常是 java.lang.NumberFormatException:对于输入字符串:“”
我一直在寻找如何使用multiple =“multiple”,但没有找到。我希望得到你的帮助。
答案 0 :(得分:6)
在你的XHTML中:
<input name="files" type="file" multiple="multiple" />
更改请求映射方法:
@RequestMapping(method = RequestMethod.POST)
public String savePhoto(MultipartRequest multipartRequest, ...)
{
List<MultipartFile> images = multipartRequest.getFiles("files");
...
}