Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过iFrame上传文件_Javascript_Java_Jquery_File_Iframe - Fatal编程技术网

Javascript 通过iFrame上传文件

Javascript 通过iFrame上传文件,javascript,java,jquery,file,iframe,Javascript,Java,Jquery,File,Iframe,我们正在创建一个网页,我必须管理文件上传。 我正在使用iframe进行文件上载。但事实上我不知道用这个会发生什么。在服务器端,我们使用Java。 这是我的代码: $(document).ready(function () { $("#formsubmit").click(function () { var iframe = $('<iframe name="postiframe" id="postiframe"></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;

    });

});
$(文档).ready(函数(){
$(“#表单提交”)。单击(函数(){
变量iframe=$('');
$(“正文”)。附加(iframe);
变量形式=$(“#上传形式”);
表格.attr(“操作”http://localhost:13000/auth/login");
表格attr(“方法”、“职位”);
attr(“编码”、“多部分/表单数据”);
form.attr(“enctype”、“多部分/表单数据”);
表格attr(“目标”、“后框架”);
form.attr(“file”,$('#userfile').val();
表单提交();
$(“#positframe”).load(函数(){
var iframeContents=this.contentWindow.document.body.innerHTML;
$(“#textarea”).html(iframeContents);
});
返回false;
});
});
(我从互联网上复制了代码,但我不懂。)

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

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

  • 对于后端,您需要控制器捕获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=System.getProperty(“catalina.home”);
    List ListaFajlova=File.getFile();
    列表文件名=新的ArrayList();
    if(null!=ListaFajlova&&ListaFajlova.size()>0){
    for(MultipartFile MultipartFile:ListaFajlova){
    字符串文件名=multipartFile.getOriginalFilename();
    如果(!“”.equalsIgnoreCase(文件名)){
    多部分文件
    .transferTo(新文件(saveDirectory+File.separator+fileName));
    添加(文件名);
    }
    }
    }
    
    通过这种方式,您可以将文件保存在saveDirectory中,并获得保存在db中的文件名列表,以便于访问

    希望这有帮助