Я сделал poc для загрузки (перетаскивания) файла из угловых js, отправив запрос на несколько частей на контроллер (Sprig), но мне нужно отправить еще несколько параметров вместе с файлом (многостраничный контент), может ли кто-нибудь предложить мне отправить файл ( Multi-часть) и json-объект для контроллера.
Вы не можете сделать это как одним способом. Если это большой объект, я предлагаю создать другой метод и вызвать его после или до загрузки файла. В противном случае, например, если у вас есть 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, который будет содержать файл и все данные формы вашего запроса.
Надеюсь это поможет.