Spring rest 控制器“MultipartFile[] multipartFile”总是接收 [] 或 null 文件
Posted
技术标签:
【中文标题】Spring rest 控制器“MultipartFile[] multipartFile”总是接收 [] 或 null 文件【英文标题】:Spring rest controller's " MultipartFile[] multipartFiles" always recieves [ ] or null files 【发布时间】:2016-11-03 07:25:42 【问题描述】:我正在使用带有 Java Config 的 Spring 4。我希望将多个文件上传到服务器,但问题是我的 MultipartFile[ ] 参数将始终收到 empty/[ ] 参数。让我在这里分享我的代码是我的“AppConfig”
@Bean(name = "multipartResolver")
public CommonsMultipartResolver multipartResolver()
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
commonsMultipartResolver.setDefaultEncoding("utf-8");
commonsMultipartResolver.setMaxUploadSize(50000000);
return commonsMultipartResolver;
所以我注册了我的 multipartResolver,然后我写了这个控制器,它除了接收文件什么都不做。
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public List<PutObjectResult> upload(@RequestParam("file") MultipartFile[] multipartFiles)
System.out.println("Multipart file length is "+multipartFiles.length);
return s3Wrapper.upload(multipartFiles);
无论我从客户端发送多少图像/文件,我的 MultipartFile[] multipartFiles 始终为空/[]。我正在使用“PostMan”在这里发送我的文件是从“postMan”向多部分控制器发送请求的屏幕截图
【问题讨论】:
【参考方案1】:你配置org.springframework.web.multipart.support.MultipartFilter
了吗?
如果没有看到这个 SO post
【讨论】:
不,它会自动使用“public CommonsMultipartResolver multipartResolver()”方法进行配置。因为这是java config所以我们不需要xml。除此之外,我已经找到了我正在更新我的答案的解决方案,如果您发现这个问题,请使用完整的投票,以便将来其他人也可以获得帮助。谢谢【参考方案2】:我只是通过在 jsp 中放置一个表单并使用表单提交测试我的方法解决了这个问题。我也使用 HttpClient 来发送请求并且它有效。我无法理解为什么,但不知何故,问题出在“PostMan”工具上,我通过该工具敲击了我的休息控制器。
【讨论】:
以上是关于Spring rest 控制器“MultipartFile[] multipartFile”总是接收 [] 或 null 文件的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 控制器 - 将 Multipart 和 JSON 上传到 DTO
将文件和 JSON 数据发布到 Spring REST 服务