Java Play フレームワークとこの File-Upload-Plugin: http://blueimp.github.io/jQuery-File-Upload/を使用しています。ドキュメントhttp://www.playframework.com/documentation/2.0/JavaFileUploadを読んだ後、Java Play Controllerでこの特定のコードを使用しました。
public static Result upload() {
File file = request().body().asRaw().asFile();
return ok("File uploaded");
}
このルートもプロジェクトに追加しました。
POST /upload controllers.Image.upload()
私のビューテンプレート:
@(scripts: Html)
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>jQuery File Upload Example</title>
</head>
<body>
<input id="fileupload" type="file" name="files[]" data-url="/upload">
@scripts
<script>
$(function () {
$('#fileupload').fileupload({
dataType: 'json',
add: function (e, data) {
data.context = $('<p/>').text('Uploading...').appendTo(document.body);
data.submit();
},
done: function (e, data) {
data.context.text('Upload finished.');
}
});
});
</script>
</body>
画像をアップロードすると、firebug に次のエラーが表示されます。
"NetworkError: 500 Internal Server Error - http://localhost:9000/upload"
このエラーは、Controller Upload-action の次の 1 行が原因で発生しました。
File file = request().body().asRaw().asFile();
誰でも解決策を知っていますか?ご協力ありがとうございました。