【发布时间】:2021-12-07 12:40:05
【问题描述】:
我正在尝试将对象列表发送到 api (Spring Boot),其中模型具有 MultiPartFile 字段和描述字段,但服务器每次都返回我 415 Unsupported Media Type。我在前端使用 Angular 9 来发送数据。
我的 Java DTO 对象如下所示:
public class FooRequestDTO {
private String description;
private MultipartFile file;
// getters.. setters..
}
我的端点控制器:
@PostMapping(value = "/foo", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
@ResponseBody
public void upload(@RequestBody List<FooRequestDTO> FooRequestDTOList) {
// something
}
还有我在 Angular 中使用的方法:
upload(files: FileInfo[]): Observable<void> {
const formData = new FormData();
for (var i = 0; i < files.length;i++) {
formData.append(`description[]`, files[i].description);
formData.append(`file[]`, files[i].file);
}
return this.http.post<void>(`/foo`, formData);
}
我也尝试直接发送files 对象,但它没有任何改变。
FileInfo 只有 File file 和 string description 字段。
有什么办法可以解决我的问题吗?在网上我没有发现任何类似的问题。
【问题讨论】:
-
在发布请求时尝试将
content-type标头设置为multipart/form-data。 -
@SKumar 服务器抛出异常
the request was rejected because no multipart boundary was found -
你有多个选项(!),但服务器端“应该工作”,客户端应该“遵守”!
-
@xerx593 我看到了这篇文章。问题是我有对象列表,这些示例对我不起作用:(
标签: javascript java angular spring-boot multipartfile