У меня есть простая форма с возможностью загрузки изображения, но для загрузки файла я не использую этот метод
<form:input path="logoData" id="image" type="file" />
вместо этого я использую ajax upload jquery pulgin .
Проблема заключается в том, что upload.parseRequest (request) возвращает ноль в следующем коде:
@RequestMapping(value = "/upload.htm", method = RequestMethod.POST)
public @ResponseBody String upload(HttpServletRequest request) throws FileUploadException{
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List<FileItem> items = upload.parseRequest(request);
System.out.println("====ITEMS====" + items.size());
System.out.println("----REQUEST---" +request.getParameter("uploadImg"));
System.out.println("-----SIZE----" +request.getParameterMap().size());
Map<String, String> map = request.getParameterMap();
for(Map.Entry<String, String> entry : map.entrySet()){
System.out.println("----KEY---" + entry.getKey() + "----value---" + entry.getValue());
}
// Check that we have a file upload request
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
System.out.println("----IS MULTIPART---" +isMultipart);
return "hello";
}
Вывод журнала:
==== ПУНКТЫ ==== 0
---- ЗАПРОС --- ноль
----- РАЗМЕР ---- 0
---- MULTIPART --- true
И мой код JavaScript:
new AjaxUpload('#upload', {
action : my_url+ 'methodName/upload.htm',
name : 'uploadImg',
autoSubmit : true,
responseType: 'html',
onChange: function(file, extension){ },
onSubmit: function(file, extension) {
},
onComplete: function(file, html) {
alert(file);
alert(html);
}
});
IS MULTIPART показывает значение true, но как получить имя файла и как его сохранить . Я пробовал пример без ajax, и он отлично работает с использованием типа данных CommonsMultipartFile.
Кроме того, я использовал ajaxupload в PHP, и я получаю имя файла как $ _FILES ['image'] ['name'], но не знаю, в Java, так как я новичок в Java.
Я следил за тем же вопросом на этом сайте, но безуспешно.
Спасибо.