Мне нужно отправить содержимое файла на веб-сервис Spring с Ajax в приложении Google AppEngine. Поэтому я использовал плагин jquery ajaxFileUpload .
<form id="load_form" action="" enctype="multipart/form-data">
<input name="file" type="file" id="upload_files" value="Browse"/>
<input type="button"" id="upload_file" value="Load file"/>
</form>
JavaScript выглядит так:
$("#upload_file").click(function(){
$.ajaxFileUpload
(
{
url: '/myproject/uploadFile.json',
secureuri: false,
fileElementId: 'upload_files',
dataType: 'json',
success: function (data, status) {
alert("OK");
},
error: function (data, status, e) {
alert("Error");
}
}
);
return false;
});
и в контроллере:
@RequestMapping(value="/uploadFile.json", method=RequestMethod.POST)
public Map<String, Object> readFile(
@RequestParam(value = "file", required=false) MultipartFile file,
Model model) throws Exception{
...
}
Проблема, с которой я столкнулся, заключается в том, что я не получаю в параметре файла содержимое файла (оно всегда равно нулю), и с помощью firebug я вижу, что отправляю содержимое файла в параметре, называемом «файл». ». Но я не получаю их, хотя этот метод вызывается (у меня есть точка останова, и она останавливается в нем). Если я удаляю required = false из параметра файла, выдается ошибка 400, поэтому он выглядит так, как будто не может найти параметр файла.
Я использую Spring 3.0.4.
Есть идеи о том, что может происходить?
Спасибо.