【发布时间】:2022-01-13 06:39:39
【问题描述】:
我看到其他类似的帖子有答案,但因为它对我没有帮助,所以我发布了这个。
我正在使用 Java/Angular 11,我在 FormData 中进行 Post Request 发送数据,但它一直在给我
Request part 'file' is not present
我的服务器
@PostMapping(value = /add, consumes = MediaType.MULTIPART_FORM_DATA_VALUE,headers = ("content-type=multipart/*"))
public ApiResponseEntity add(@RequestParam("file") MultipartFile file,
@RequestParam("foo") Foo foo) throws IOException {
我的客户(角度)
formData = new FormData()
this.formData.append("file", ev.target.files[0]));
this.formData.append("foo",JSON.stringify(FooDTO));
this.httpClient
.post<any>(this.baseURL + apiURL + "/add", entity, this.httpOptions)
.subscribe((response: any) => {
resolve(response);
}, reject);
我的有效负载: ------WebKitFormBoundarysDMcWqKZNsayiMSX 内容处置:表单数据;名称=“文件”;文件名="abc.png" 内容类型:image/png
------WebKitFormBoundarysDMcWqKZNsayiMSX 内容处置:表单数据;名称="foo"
{ ... } ------WebKitFormBoundarysDMcWqKZNsayiMSX--
我哪里做错了?感谢观看和回答!
注意:HttpOption 有 Content-type: multipart/form-data,我也尝试使用 @RequestPart 但结果还是一样
更新:对不起,我忘了显示我的 POST 方法参数 这是完整版
public add(formData: any, apiURL: string): Promise<any> {
console.log(formData)
return new Promise((resolve, reject) => {
this.httpClient
.post<any>(this.baseURL + apiURL + "/add", formData, this.httpOptions)
.subscribe((response: any) => {
resolve(response);
}, reject);
});
}
我所做的是在我整理好我的 formData 之后,我将它传递给上面的 add 方法来调用 API
【问题讨论】:
标签: java angular request parameter-passing payload