4

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();

誰でも解決策を知っていますか?ご協力ありがとうございました。

4

2 に答える 2