Невозможно опубликовать составные данные и запросить данные формы json запрос - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь опубликовать данные от почтальона. У меня есть метод получения файла 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;
}

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Первое, что MultipartFile не может находиться внутри тела ответа от вашего клиента. Во-вторых, ответ от вашего браузера должен быть только одним способом.

Мое предложение заключается в том, что вы можете поместить все данные, которые хотите сохранить, в базу данных в форме отправки. И используйте @ModelAttribute Product product, @RequestParam MultipartFile[] files. Кроме того, ваш метод может быть void, так как вы сохраняете данные, вам не нужно ничего возвращать. Примечание: @ModelAttribute может быть опущен.

0 голосов
/ 06 февраля 2020

Вы можете принять оба параметра как RequestParam и скрыть json body для Object, используя objectMapper, как показано ниже

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...