4

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

 <form action="" id="frmupload" name="frmupload" method="post" enctype="multipart/form-data">
     <input type="file" id="upload_file" name="upload_file" multiple="" />
     <input type="submit" value="Update" />
 </form>

我有两个问题:

  1. 当我选择一些文件时,即类型的onchange事件,文件应该被上传。inputfile

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

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

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

    $(document).ready(function(){
        $('upload_file').change(function(){
            var data = new FormData();
            data.append('file', $(this[0].files[0]));
            $.ajax({
                url: 'photo.jsp',
                type: 'post',
                contentType: attr('enctype', "multipart/form-data"),
                data: data,
                success: function(data){
                    alert(data);
                }
            })
        });
    });
    

    但无法得到预期的结果。

  2. 我还需要一个用于上传操作的进度条。

4

3 回答 3

3

看看这个使用 IFrame 的例子,在 PHP 中,但是改变动作应该可以解决问题

使用隐藏的 IFrame 上传 Ajax 样式文件

于 2013-07-31T12:54:59.723 回答
1

由于您已经在使用 jQuery,我肯定会选择jQuery Form Plugin,它允许您通过 AJAX 进行表单上传,即使表单包含file输入。

其网站上有一个示例,显示了如何显示进度条。

于 2013-07-31T12:48:21.677 回答
0

看看这个例子,它是你想要的

http://www.asp.net/ajaxlibrary/ajaxcontroltoolkitsamplesite/asyncfileupload/asyncfileupload.aspx

于 2014-01-31T11:40:04.383 回答