spring引导multipartfile的值始终为null

wd2eg0qa  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(480)

因此,我正在为javascript前端制作restfulapi后端,并希望将一个文件上传到google云存储。我有这个功能来处理文件上传:

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST, consumes = { "multipart/form-data" })
    public ResponseEntity<?> uploadFile(@ModelAttribute("file") FileDTO fileDTO) {
        FunctionResponse uploadResponse = cloudStorage.uploadObject(fileDTO.getFile());
        if (uploadResponse.successful()) {
            return new ResponseEntity<>(uploadResponse.getMessage(), HttpStatus.OK);
        } else {
            return new ResponseEntity<>(uploadResponse.getMessage(), HttpStatus.BAD_REQUEST);
        }
    }

我的filedto类如下所示:

public class FileDTO implements Serializable {

    private MultipartFile file;

    public MultipartFile getFile() {
        return file;
    }
}

但是,每当我尝试访问多部分文件时,它总是抛出一个 java.lang.NullPointerException . 我已经尝试了很多类似问题的答案,但到目前为止都没有成功。
我有 multipart.enabled=true 在我的application.properties中。
如果您需要任何帮助,请告诉我。

2jcobegt

2jcobegt1#

multipart/form-data 请求到达时,必须使用 @RequestParam ,不是 @ModelAttribute +如果您需要的请求值是一个文件,那么应该将其反序列化为 MultipartFile 对象。

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST, consumes = {"multipart/form-data"})
public ResponseEntity<?> uploadFile(@RequestParam(name = "file") MultipartFile file) {
    // your handle ...
}

相关问题