@sevic

Как загрузить изображение вместе с другими данными в виде списка (form-data), используя класс dto для входящих данных на сервере?

Класс dto входящих данных на сервере:

public class exampleDto {
    // валидация поля
    private MultipartFile file;
    // валидация поля
    private List<childDto> childList;
}


метод контроллера:

@PostMapping(path = "/create")
    public ResponseDto create(@Validated(OnCreate.class) @ModelAttribute exampleDto dto) throws IOException {
        return mapper.toDto(service.create(dto));
    }


Чтобы отправить данные с файлом нужно использовать 'Content-Type': 'multipart/form-data' и тогда данные которые были в виде json:

let childList = [
    {field1: 'text', field2: 'text'},
    {field1: 'text', field2: 'text'},
    ...
]

преобразуются в такой вид:

childList[0][field1] = 'text',
childList[0][field2] = 'text,
childList[1][field1] = 'text,
childList[1][field2] = 'text
...
и сервер выбрасывает исключение InvalidPropertyException

Какой тип данных нужно указать для поля, которое списком приходит?
Или лучше файл одним запросом отправлять, а остальные данные вторым запросом.
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы