3 回答

TA贡献1824条经验 获得超6个赞
尝试这个 ,
const formData = new FormData();
formData.append("file", file);
formData.append("reportProgress", true);
使用http客户端,
return this.httpclient.post(this.urlUpload, formData);

TA贡献1854条经验 获得超8个赞
你有没有设置内容类型?如果是这样,请将其删除。
headers:{
"Content-Type":"multipart/form-data", // remove it
},
前端:
const formData = new FormData();
formData.append("file", file);
formData.append("reportProgress", "true");
return this.http.post<void>(this.API_URL + '/upload', formData);
后端:
@Operation(description = "Upload File")
@ApiResponses(value = {
@ApiResponse(responseCode = "201", description = "File Uploaded successfully"),
@ApiResponse(responseCode = "400", description = "Problem during file upload ")
})
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseStatus(value = HttpStatus.CREATED)
public void upload(@RequestPart("file") final MultipartFile file) {
//action;
}

TA贡献2036条经验 获得超8个赞
你真的发送FormData到你的服务器吗?
尝试将文件包装在一个FormData对象中,HttpClient以便自动添加多部分边界。
upload(file) {
const formData = new FormData();
formData.append('file', file);
const req = new HttpRequest('POST', this.urlUpload, formData, {
headers: new HttpHeaders({'Content-Type':'multipart/form-data'}),
reportProgress: true
});
return this.http.request(req);
}
添加回答
举报