Отправить файл в api и получить null в контроллере

Я отправляю файл в api следующим образом

const formData = new FormData();
    if ($.isEmptyObject(this.state.attachment)===false) {
        formData.append('attachment', this.state.attachment);
        $.ajax({
            type: 'POST',
            url: process.env.REACT_APP_API_HOST + "/api/attachment",
            async: false,
            timeout: 5000,
            processData: false,
            contentType: false,
            cache: false,
            data: {
                attachment: formData
            }
        });
    }

И привязанность я получаю следующим образом

<input type='file' name='attachment' className = "form-control" defaultValue = {this.state.attachment}
                   onChange = {this.handleChangeEvent}/>

И мой контроллер

@RequestMapping(value = "/attachment", method = RequestMethod.POST)
public HttpEntity attachment(@ModelAttribute MultipartFile attachment){
    System.out.println(attachment);
    return ResponseEntity.ok().build();
}

Я получаю нулевой результат Что я делаю не так?

Обновлять

    handleChangeEvent = (event) => {
    this.setState({[event.target.name]: event.target.value});
};

Пожалуйста, опубликуйте свою функцию handleChangeEvent (), чтобы я мог заглянуть внутрь того, что на самом деле происходит внутри this.state.attachment.

root 09.08.2018 13:18

Отправьте объект FormData напрямую: data: formData. Не оборачивайте его в объект, который нужно сериализовать.

Rory McCrossan 09.08.2018 13:23

Создайте объект-оболочку с полем attachment типа MultipartFile. Затем используйте @ResponseBody в качестве аннотации к этому объекту в качестве аргумента метода.

M. Deinum 09.08.2018 13:24

Комментарий М. Дейнума не получился. И я запутался, но обновил сообщение для корня комментария

Aleksandr Zorin 09.08.2018 14:15
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
4
40
0

Другие вопросы по теме