Как отправить данные Multipart и объект json из ajax в spring

0

Я сделал poc для загрузки (перетаскивания) файла из угловых js, отправив запрос на несколько частей на контроллер (Sprig), но мне нужно отправить еще несколько параметров вместе с файлом (многостраничный контент), может ли кто-нибудь предложить мне отправить файл ( Multi-часть) и json-объект для контроллера.

Теги:
spring
file-upload
httprequest
annotations

1 ответ

0

Вы не можете сделать это как одним способом. Если это большой объект, я предлагаю создать другой метод и вызвать его после или до загрузки файла. В противном случае, например, если у вас есть HTML-форма, вы можете сделать что-то вроде этого:

var form = new FormData(document.getElementById('file-upload-form'));
$.ajax({
    url: /file/upload,
    data: form,
    dataType: 'text',
    processData: false,
    contentType: false,
    type: 'POST',
    success: function () {
        //Do something
    },
    error: function (jqXHR) {
        //Do something
    }
});

Затем в контроллере весны:

@RequestMapping(value = "/file/upload", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity uploadFile(MultipartHttpServletRequest request) {
    Iterator<String> itr = request.getFileNames();
    MultipartFile file;

    try {
        file = request.getFile(itr.next()); //Get the file.
    } catch (NoSuchElementException e) {
    }

    String param = request.getParamterer("paramName"); //Get your parameters

    //Do something else.
}

Вы должны объявить MultipartHttpServletRequest, который будет содержать файл и все данные формы вашего запроса.

Надеюсь это поможет.

  • 0
    да, это мне очень помогает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню