1

私はで働いていplay framework 2.1.2ます。Ajaxで働きたいplay framework

私は何をやっている?私は複数のファイルをアップロードしていますが、ユーザーがアップロードするファイルを選択しなかった場合は、アップロードするファイルを選択していないというメッセージが表示れ、ユーザーがアップロードするファイルを選択してその時点でアップロードをクリックすると、ファイルがアップロードされたようなメッセージが表示されるようにしたい

私のビュー部分は次のとおりです。

@form(action = routes.upload.up, 'enctype -> "multipart/form-data",'_id->"he") {
            <input type="file" name="file" accept="application/pdf" multiple="multiple"><br/> 
            <input type="submit" id="if" value="upload and extract"> 

            }

そしてデータ取得。

ファイルアップロードフォーム

ユーザーがアップロードボタンをクリックすると、その時点でユーザーがアップロードするファイルを選択すると、ファイルのアップロード後にメッセージファイルがアップロードされ、ユーザーがファイルを選択しなかった場合にメッセージを表示したいファイルを選択します

コントローラ部でファイル処理してから送信するメッセージデータを送信したい。そのAjaxに送信したいメッセージのコントローラー部分の後にどのようなメッセージが表示されますか。

コントローラー部分は次のとおりです。

Http.MultipartFormData body = request().body().asMultipartFormData();
        List<FilePart> resourceFiles = body.getFiles();


        if (!resourceFiles.isEmpty()) {

            for (FilePart upload : resourceFiles) {

                String targetPath = "/home/rahul/Documents/upload/"
                        + upload.getFilename();
                upload.getFile().renameTo(new File(targetPath));
            }
            return ok("File uploaded ");  //i want to print this result as a message 
        } else {
            return forbidden(); 
        }
    }

いくつかのコードを試しましたが、十分な解決策が得られませんでした。

ajax を使用するためのアイデアを教えてください。

4

1 に答える 1

-1

数週間前、 jquery-file-uploadを使用して ajax でファイルのアップロードを実装しました。私の解決策を投稿するかもしれません。あなたが満足することを願っています。この例は単純な 1 ファイルのアップロード用ですが、拡張することができます。

スクリプト

<script src="@routes.Assets.at("javascripts/jquery-file-upload/jquery.iframe-transport.js")" type="text/javascript"></script>
<script src="@routes.Assets.at("javascripts/jquery-file-upload/vendor/jquery.ui.widget.js")" type="text/javascript"></script>
<script src="@routes.Assets.at("javascripts/jquery-file-upload/jquery.fileupload.js")" type="text/javascript"></script>

意見

<input type="file" id="@d" name="@d" data-url="@code.routes.Ext.upload()"  />
<script type="text/javascript">
    $(document).ready(function () {
        $('#@d').fileupload({
            replaceFileInput: true,
            done: function (e, data) {
                //Here you got server response.
                console.log(data);
                var d = data.result;
                alert(d);
                $('#img1').attr("src",d);
            }
        });
    });
</script>

@dビューパラメータはどこにありますか。

コントローラ

コードではreturn ok("File uploaded ")、クライアントへの応答に使用できます。

完全なソース コードは、ここ (Scala)ここここ、およびここにあります。

于 2013-08-28T07:24:41.087 に答える