使用Spring 3上传多个文件

时间:2014-03-06 08:46:51

标签: java spring file-upload multiple-files

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

标记:

<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”,但没有找到。我希望得到你的帮助。

1 个答案:

答案 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");
    ...
}
相关问题