Spring Boot MultipartFile 的值始终为 null

Spring Boot MultipartFile always has value of null

所以我正在为 JavaScript 前端制作一个 RESTful API 后端,并想将文件上传到 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);
        }
    }

我的文件 DTO class 看起来像这样:

public class FileDTO implements Serializable {

    private MultipartFile file;

    public MultipartFile getFile() {
        return file;
    }
}

然而,每当我尝试访问 MultipartFile 时,它​​总是抛出 java.lang.NullPointerException。 我已经尝试了来自具有类似问题的线程的各种 SO 答案,但 none 到目前为止有效。

我的 application.properties 中有 multipart.enabled=true

如有任何帮助,我们将不胜感激,如果您需要更多信息,请告诉我。

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 ...
}