我正在尝试在SpringBoot中上传多部分文件,但是当我对正文中的图像发出发布请求时,SpringBoot无法获取图像文件。
这是我的代码的简化示例,它提出了上述问题(PostImage方法返回-2):
@PostMapping("/Users/Image")
int PostImage(@RequestBody MultipartFile Image){
if( Image == null ) return -2;
return 0;
}
对于发布请求,我尝试了一个REST客户端,并从前端发出了请求。 自从我现在开始学习SprinBoot以来,任何帮助将不胜感激。
修改
通过将@RequestBody更改为@RequestParam(“ file”),并在前端应用程序(角度)上使字段名称为“ file”,我可以发出请求。不过,我还没有成功通过REST客户端进行POST。
答案 0 :(得分:1)
对于您的@RestController
方法,请尝试@RequestParam MultipartFile Image
。对于您的MVC @Controller
,建议您定义一个表单:
@NoArgsConstructor
@Getter @Setter
@EqualsAndHashCode(callSuper = false) @ToString @Log4j2
public class Form {
private MultipartFile file;
}
并执行以下操作:
@RequestMapping(method = { POST }, value = { "/Users/Image" })
public String PostImage(..., @Valid Form form, BindingResult result) {
try {
if (! result.hasErrors()) {
...
MultipartFile file = form.getFile();
...