Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 使用ajax post上传文件而不刷新页面_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 使用ajax post上传文件而不刷新页面

Javascript 使用ajax post上传文件而不刷新页面,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个页面文件-upload.jsp,其代码片段如下: 我有两个问题: 当我选择一些文件时,即输入类型文件的onchange事件,文件应上载 我有一个Java页面,它接收multipart请求参数并将文件上传到所述位置。我的问题是表单提交onchange,以便Java文件可以继续执行进一步的操作 我在谷歌上搜索了很多文章。有人说不可能通过Ajax直接上传文件,有人说通过Ajax/jQuery将表单提交到iframe 我尝试了许多来自互联网的代码,例如: $(文档).ready(函数(){

我有一个页面文件-upload.jsp,其代码片段如下:


我有两个问题:

  • 当我选择一些文件时,即
    输入
    类型
    文件
    onchange
    事件,文件应上载

    我有一个Java页面,它接收multipart请求参数并将文件上传到所述位置。我的问题是表单提交
    onchange
    ,以便Java文件可以继续执行进一步的操作

    我在谷歌上搜索了很多文章。有人说不可能通过Ajax直接上传文件,有人说通过Ajax/jQuery将表单提交到iframe

    我尝试了许多来自互联网的代码,例如:

    $(文档).ready(函数(){
    $('upload_file')。更改(函数(){
    var data=new FormData();
    data.append('file',$(此[0].files[0]);
    $.ajax({
    url:'photo.jsp',
    键入:“post”,
    contentType:attr('enctype',“多部分/表单数据”),
    数据:数据,
    成功:功能(数据){
    警报(数据);
    }
    })
    });
    });
    
    但未能达到预期效果

  • 我还需要一个上传操作的进度条


  • 既然您已经在使用jQuery,我肯定会选择,它允许您通过AJAX进行表单上传,即使表单包含
    文件
    输入


    它的网站上有一个显示进度条的工具。

    看看这个使用IFrame的例子,它是用PHP编写的,但是更改操作应该可以做到这一点


    看看这个例子,它完全符合您的要求


    您展示的示例是使用ajax,但我想要的是像您在facebook或邮箱上看到的那样上传文件,即当您选择一些文件时,上传应该开始,您可以预览页面上的文件,而无需按下提交按钮。一切正常后,我希望按下提交按钮以实际上传到幸运的是,我提供的jquery代码只是我尝试过的众多方法中的一种。欢迎使用其他方法