在Angular的服务中,需要使用FormData来构建上传文件的请求,同时需要设置请求头的Content-Type为undefined。具体代码如下:
uploadFile(file: File): Observable {
const formData = new FormData();
formData.append('file', file);
return this.http.post('/api/upload', formData, {
headers: {
'Content-Type': undefined
}
});
}
在Spring Boot的Controller中,需要添加@RequestParam注解来接收文件,并将@RequestParam的required属性设置为false,以允许不带文件参数的请求。具体代码如下:
@PostMapping("/upload")
public ResponseEntity> uploadFile(@RequestParam(required = false) MultipartFile file) {
if (file != null) {
// 处理上传文件的逻辑
return ResponseEntity.ok().build();
} else {
// 处理未上传文件的逻辑
return ResponseEntity.badRequest().build();
}
}