我有下面的控制器方法可以同时上传多个文件,它的灵感来自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
}
但是,尽管request包含这些文件,但文件列表始终为空。
如果我在方法中添加第三个MultipartRequest
参数:
public void upload(@PathVariable User user,
@RequestParam("file") List<MultipartFile> files,
MultipartRequest request)
我可以看到它包含我上传的文件正确:
List<MultipartFile>
为空的原因可能是什么?
我使用ng-file-upload来提交文件,但我不认为它与问题有关。
5条答案
按热度按时间icnyk63a1#
问题是ng-file-upload默认使用名称
file[0]
、file[1]
等提交文件数组。在使用Upload
服务时,可以使用arrayKey
值进行配置。将其设置为空字符串将强制在相同的file
键下发送文件,该键可以使用Spring正确解析,并且@RequestParam("file") List<MultipartFile>
包含已提交的所有文件。c0vxltue2#
尝试像这样使用
@ModelAttribute
:并创建一个类,如下所示:
ztmd8pv53#
这对我很有效,从UI向后端发送带有多个文件附件的大型“电子邮件”对象:
Angular
java Spring
siv3szwd4#
为多个文件.做这在你的javascript
在java中执行此操作
fzwojiic5#
我认为从前端发送数据的方式,无法与java. util. List * a绑定**。如果创建JSON数据作为请求,并使用@RequestBody注解List,如:
这个应该行的一些信息here。