SpringBoot没有从发布请求中获取MultipartFile

时间:2020-08-18 17:49:15

标签: spring spring-boot rest

我正在尝试在SpringBoot中上传多部分文件,但是当我对正文中的图像发出发布请求时,SpringBoot无法获取图像文件。

这是我的代码的简化示例,它提出了上述问题(PostImage方法返回-2):

@PostMapping("/Users/Image")
int PostImage(@RequestBody MultipartFile Image){
    if( Image == null ) return -2;
    return 0;
}

对于发布请求,我尝试了一个REST客户端,并从前端发出了请求。 自从我现在开始学习SprinBoot以来,任何帮助将不胜感激。

REST客户端屏幕截图:enter image description here

修改

通过将@RequestBody更改为@RequestParam(“ file”),并在前端应用程序(角度)上使字段名称为“ file”,我可以发出请求。不过,我还没有成功通过REST客户端进行POST。

1 个答案:

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