1

我正在与play framework 2.1.2. 我想和Ajaxin一起工作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 回答