我需要在Google AppEngine应用程序中使用Ajax将文件内容发送到Spring webService。所以我使用了jquery ajaxFileUpload plugin。
<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{
...
}
我遇到的问题是我没有在文件参数中接收文件内容(它总是为null)并且使用firebug我可以看到我在一个名为“file”的参数中发送文件的内容”。但是我没有收到它们,虽然调用了这个方法(我有一个断点,它停在它里面)。如果我从文件参数中删除了required = false,则会给出400错误,因此它看起来无法找到文件参数。
我正在使用Spring 3.0.4。
对可能发生的事情有所了解?
感谢。