Google App EngineアプリケーションでAjaxを使用してファイルのコンテンツをSpring WebServiceに送信する必要があります。だから私はjquery ajaxFileUpload pluginを使用しました。appengineにajaxを含むファイルをアップロードする際の問題
$("#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;
});
とコントローラで:
<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を次のようになります
@RequestMapping(value="/uploadFile.json", method=RequestMethod.POST)
public Map<String, Object> readFile(
@RequestParam(value = "file", required=false) MultipartFile file,
Model model) throws Exception{
...
}
私がいる問題は、私は、ファイルのパラメータで受信していないよということですファイルの内容(それは常にnullです)と火かき棒で私は "ファイル"というパラメータでファイルの内容を送信していることがわかります。しかし、このメソッドが呼び出されても、私はそれらを受け取っていません(私はそれにブレークポイントを持っており、その中で停止します)。ファイルのparamからrequired = falseを削除すると、400のエラーが出されます。そのため、ファイルのparamが見つからないと思われます。
私はSpring 3.0.4を使用しています。
何が起こっているのでしょうか?
ありがとうございました。