【问题标题】:File upload via iFrame通过 iFrame 上传文件
【发布时间】:2015-06-24 14:16:05
【问题描述】:

我们正在创建一个网页,我必须管理文件上传内容。 我正在使用 iframe 进行文件上传。但实际上我不知道使用它时会发生什么。在服务器端,我们使用 Java。 这是我的代码:

$(document).ready(function () {

    $("#formsubmit").click(function () {

        var iframe = $('<iframe name="postiframe" id="postiframe"></iframe>');

        $("body").append(iframe);

        var form = $('#theuploadform');
        form.attr("action", "http://localhost:13000/auth/login");
        form.attr("method", "post");

        form.attr("encoding", "multipart/form-data");
        form.attr("enctype", "multipart/form-data");

        form.attr("target", "postiframe");
        form.attr("file", $('#userfile').val());
        form.submit();

        $("#postiframe").load(function () {
          var   iframeContents = this.contentWindow.document.body.innerHTML;
            $("#textarea").html(iframeContents);
        });

        return false;

    });

});

(我从网上复制代码,但看不懂。)

谁能告诉我点击提交按钮时会发生什么?正在发送什么?文件为字节?当我想编写我们的服务器端 java 处理程序时,我需要了解这一点。 我想我花了太多时间试图理解这一点。

首先我认为我们可以通过 jQuerys POST 方法发送文件,因为它适用于用户身份验证。但事实并非如此。

【问题讨论】:

    标签: javascript java jquery file iframe


    【解决方案1】:
    1. 对于后端,您需要控制器来捕获 http 请求和具有属性的 java 类:

    假设你的 java 类名为 File.java

    private List<MultipartFile> file;
    String saveDirectory = System.getProperty("catalina.home");
        List<MultipartFile> ListaFajlova = File.getFile();
        List<String> fileNames = new ArrayList<String>();
    
        if (null != ListaFajlova && ListaFajlova.size() > 0) {
            for (MultipartFile multipartFile : ListaFajlova) {
    
                String fileName = multipartFile.getOriginalFilename();
                if (!"".equalsIgnoreCase(fileName)) {            
                    multipartFile
                            .transferTo(new File(saveDirectory + File.separator+fileName));
                    fileNames.add(fileName);
                }
            }
        }
    

    这样,您将文件保存在 saveDirectory 中,并获得保存在 db 中的文件名列表,以便于访问。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2010-12-06
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      相关资源
      最近更新 更多