繁体   English   中英

无法发布多部分数据和请求体表单数据 json 请求

[英]Unable to post multipart data and requestbody form data json request

我正在尝试从邮递员发布数据。 我有一个接收 RequestBody 和 Multipart 文件的方法。 但我钢铁有这个错误。 当我只保存一张图像时,我用来存储图像的方式正在其他实现中工作。

{
    "timestamp": "2020-02-06T19:52:12.566+0000",
    "status": 415,
    "error": "Unsupported Media Type",
    "message": "Content type 'multipart/form-data;boundary=--------------------------833603313116090653834108;charset=UTF-8' not supported",
}
@PostMapping(value = "new", headers=("content-type=multipart/*"), consumes = "multipart/form-data" )
private Product save(@RequestBody Product product, @RequestParam("files") MultipartFile[] files){
    var disk = new Disk("product");
    Product productSaved = new Product();
    String fileName;
    try {
          if (files != null && files.length >0) {
                productSaved =  service.save(product);
                for (MultipartFile file : files) {
                    fileName = disk.saveImage(file);
                    Images image = new Images(fileName, productSaved);
                    imagesService.saveImage(image);
                }
            } else {
                return null;
            }
       } catch (IOException e) {
            e.printStackTrace();
      }
    return productSaved;
}

第一件事是 MultipartFile 不能位于客户端的响应正文中。 第二件事是来自浏览器的数据响应应该只有一种方式。

我的建议是,您可以将所有要保存到数据库的数据放入表单提交中。 并使用@ModelAttribute Product product, @RequestParam MultipartFile[] files 此外,您的方法可能是void因为您保存了数据,您不需要返回任何内容。 注意:@ModelAttribute 可以省略。

您可以使用如下所示的 objectMapper 将两个参数都作为 RequestParam 和隐蔽的 json 主体到 Object

在此处输入图片说明

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM