【发布时间】:2016-05-11 16:07:51
【问题描述】:
受this blog post 和this question 的启发,我有以下控制器方法可以一次上传多个文件:
@RequestMapping(value = "/{user}/attachment", method = RequestMethod.POST)
@PreAuthorize(...)
public void upload(@PathVariable User user,
@RequestParam("file") List<MultipartFile> files) {
// handle files
}
但是,尽管请求包含文件,但文件列表始终为空。
如果我在方法中添加第三个MultipartRequest 参数:
public void upload(@PathVariable User user,
@RequestParam("file") List<MultipartFile> files,
MultipartRequest request)
我可以看到它正确包含我上传的文件:
List<MultipartFile>为空可能是什么原因?
我正在使用ng-file-upload 提交文件,但我认为这与问题无关。春季 4.2.4。
【问题讨论】:
-
你的配置?您需要一个库和一个匹配的解析器来进行分段上传。
-
我假设您阅读了您所指的博客文章。
commons-fileupload例如 -
是的,我已经完成了所有设置。事实上,我可以通过从
multipartRequest.getFileMap().values()读取这些文件来接收它们。我要问的是为什么我不能像我参考的资料中所建议的那样简单地使用List<MultipartFile>。 -
可能缺少某些东西。例如,如果包含标准 servlet 多部分支持,但您使用 commons 多部分解析器 - 如博客文章中所建议 - 将不会填充
files。 -
是否可以在请求中使用 List
获取 List ?
标签: java angularjs spring spring-mvc ng-file-upload