spring-mvc と jquery uploadify を使用して画像をアップロードしています。uploadify スクリプトは画像をサーバーに保存します。画像は保存されますが、uploadify は HTTP エラーをスローし、onComplete は発生しません。スクリプトが何かを返すことを確認しました。これが私のコードです。
$(document).ready(function() {
$('#upload').click(function() {
$('#uploadify').uploadifyUpload();
return false;
});
$('#uploadify').uploadify({
'uploader': 'js/uploadify/uploadify.swf',
'script': 'uploadcreate.htm;jsessionid=${sessionId}',
'multi': false,
'auto' : true,
'fileDesc': 'JPG Image Files (*.jpg),JPG Image Files (*.JPG),JPG Image Files (*.JPEG)',
'fileExt' : '*.jpg;*.jpeg;*.JPEG;',
'cancelImg': 'js/uploadify/cancel.png',
onComplete: function (event, queueID, fileObj, response, data) {
alert("as");
//$("#showimage").html('<img src="' + response + '" height="500" width="500" /><br />http://localhost:8080' + fileObj.filePath);
}
});
});
私のコントローラーコードは次のとおりです。
@RequestMapping(value="/uploadcreate.htm", method = RequestMethod.POST)
public JSONObject uploadcreate(UploadProperties uploadbean, BindingResult result, HttpServletRequest request, Model model) {
System.out.println("started uploading");
if (result.hasErrors()) {
for (ObjectError error : result.getAllErrors()) {
System.err.println("Error in uploading: " + error.getCode()
+ " - " + error.getDefaultMessage());
}
return null;
}
String relativeWebPath = "/WEB-INF/uploads";
String absoluteFilePath = request.getServletContext().getRealPath(relativeWebPath);
String username = request.getUserPrincipal().getName();
JSONObject filepath = uploadFacade.upload(uploadbean, username, absoluteFilePath);
model.addAttribute("filePath", filepath);
return filepath;
}