【发布时间】:2020-10-05 17:03:12
【问题描述】:
我正在尝试将 JSON 文件和图像文件一起发送到服务器,但我真的很挣扎。
1) 如果我只发送被子项目,那么跳过 formData 并将下面的 $http 部分更改为 $http.post('quilts/create/', quilt),然后将服务器端点设置为期望 (@ RequestBody QuiltRequest quiltRequest) 没有关于 transformRequest 和 headers 的信息,它可以非常愉快地处理其中的数据,但我没有要添加到记录中的图像。
2)如果我不将被子项添加到formData,并告诉服务器期望(@RequestParam(“image”)MultipartFile图像),我可以将图像文件保存在我的服务器上并生成一个url字符串为它,但没有其他被子信息来制作相应的数据库条目。
如何在一个请求中同时发送被子和图像,并让服务器同时接收和处理?
非常感谢!
客户端服务:
this.create = function (quilt, image) {
quilt.size = JSON.parse(quilt.size);
quilt.maker = JSON.parse(quilt.maker);
const formData = new FormData();
formData.append('quiltRequest', quilt);
formData.append('image', image);
$http.post('quilts/create/', formData, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).then(function (response) {
return window.location = '#!/quilts/created/' + response.data;
})
};
服务器端端点:
@PostMapping(path = "/create")
public BigInteger create(@RequestPart QuiltRequest quiltRequest, @RequestPart MultipartFile image) throws IOException {
// do stuff based on parameters received
}
【问题讨论】: