因此,我正在为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中。
如果您需要任何帮助,请告诉我。
1条答案
按热度按时间2jcobegt1#
当
multipart/form-data
请求到达时,必须使用@RequestParam
,不是@ModelAttribute
+如果您需要的请求值是一个文件,那么应该将其反序列化为MultipartFile
对象。