通过iFrame上传文件

时间:2015-06-24 14:16:05

标签: javascript java jquery file iframe

我们正在创建一个网页,我必须管理文件上传内容。 我正在使用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方法发送文件,因为它适用于用户身份验证。但事实并非如此。

1 个答案:

答案 0 :(得分:0)

  1. 对于后端,您需要控制器来捕获http请求和一个属性为:
  2. 的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中的文件名列表,以便于访问。

    希望这有帮助。