Вы можете попробовать подход выделения модели, как показано ниже
public class MultiImage implements Serializable
{
private static final long serialVersionUID = 74458L;
private String name;
private String data;
private List<MultipartFile> images;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public List<MultipartFile> getImages() {
return images;
}
public void setImages(List<MultipartFile> images) {
this.images = images;
}
}
Ваш результат JSON может быть другими значениями POJO или String, которые я здесь сделал следующим образом
public class UploadResult {
String result;
String msg;
public UploadResult(String result, String msg) {
this.result = result;
this.msg = msg;
}
public String getResult() {
return result;
}
public String getMsg() {
return msg;
}
}
Ваша MVC / сервисная сторона будет обрабатывать этот запрос, просматривая модель и выбирая изображения, а затем передавая или сохраняя их в заранее определенном месте и упаковывая результат в ResponseEntity.
@RequestMapping(value = "/upload-image", method = RequestMethod.POST)
public ResponseEntity uploadImages(HttpServletRequest servletRequest, @ModelAttribute MultiImage multiImage, Model model) {
//Get the uploaded images and store them
List<MultipartFile> images = multiImage.getImages();
List<String> fileNames = new ArrayList<String>();
if (null != images && images.size() > 0)
{
for (MultipartFile multipartFile : images) {
String fileName = multipartFile.getOriginalFilename();
fileNames.add(fileName);
File imageFile = new File(servletRequest.getServletContext().getRealPath("/image"), fileName);
try
{
multipartFile.transferTo(imageFile);
} catch (IOException e)
{
e.printStackTrace();
}
}
}
model.addAttribute("images", images);
UploadResult uploadResult = new UploadResult("Success","Images Uploaded");
return ResponseEntity.Ok(uploadResult);
}