Я пытаюсь загрузить многоуровневые файлы с помощью FormData и spring.Загрузите несколько файлов с помощью ajax и spring mvc
HTML:
<input type="file" name="img" multiple id="upload-files">
JS код:
var ajaxData = new FormData();
var files = $('#upload-files').prop('files');
for(var i=0;i<files.length;i++){
ajaxData.append('file['+i+']', files[i]);
}
ajaxData.append("file", files);
$http.post('../rest/upload', ajaxData, {
headers: {'Content-Type': undefined },
transformRequest: angular.identity
});
Spring Controller Код:
@RequestMapping(value = "/upload", produces="application/json", method = RequestMethod.POST)
@ResponseBody
public String upload(
@RequestParam ArrayList<MultipartFile> files
){
System.out.println(files.size());
return null;
}
Однако, количество файлов выходит равным 0 на подаче запроса с несколько файлов. При использовании нотации массива MultipartFile[] files
вместо ArrayList он дает 400, Bad Request.
Как заставить контроллер весны работать с несколькими файлами? Я не могу найти решение по другим вопросам SO.
Вы пытались переместить List в объект и настроили CommonsMultipartResolver и InternalResourceViewResolver на spring-servlet.xml? –
Вы правильно добавили encType в кнопку отправки формы? например