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);
}
添加回答
舉報