使用Spring 3上传多个文件

0 java spring file-upload

我需要一次加载未知数量的文件.我找到了一个例子,它适用于已知数量的文件:

标记:

<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>
Run Code Online (Sandbox Code Playgroud)

码:

@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();
}
Run Code Online (Sandbox Code Playgroud)

MultiPartFileUploadBean:

public class MultiPartFileUploadBean {
    private List<MultipartFile> files;

    public void setFiles(List<MultipartFile> files) {
        this.files = files;}

    public List<MultipartFile> getFiles() {
        return files;}
}
Run Code Online (Sandbox Code Playgroud)

是的,它有效,但我不知道用户想要如何在相册中上传照片. 我使用:

<input name="files[]" type="file" multiple="multiple" />
Run Code Online (Sandbox Code Playgroud)

我会收到一个错误.

请求处理失败; 嵌套异常是java.lang.NumberFormatException:对于输入字符串:""

我一直在寻找如何使用multiple ="multiple",但没有找到.我希望得到你的帮助.

hol*_*s83 6

在您的XHTML中:

<input name="files" type="file" multiple="multiple" />
Run Code Online (Sandbox Code Playgroud)

更改请求映射方法:

@RequestMapping(method = RequestMethod.POST)
public String savePhoto(MultipartRequest multipartRequest, ...)
{
    List<MultipartFile> images = multipartRequest.getFiles("files");
    ...
}
Run Code Online (Sandbox Code Playgroud)