通过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. 对于后端,您需要控制器来捕获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中,并获得保存在数据库中的文件名列表,以便于访问。

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新