【问题标题】:Jquery Upload with Progressbar带有进度条的 Jquery 上传
【发布时间】:2016-06-19 12:34:00
【问题描述】:

我有一个可以正常工作的 Ajax-Upload 脚本。现在我想添加一个进度条或其他东西。如何在下面的脚本中实现类似的功能:

  $('body').on('change', '#uploadFile', function() {

// Post-Data
var data = new FormData();
data.append('file', this.files[0]);
data.append('uid', $("#uploadFile").attr('data-uid'));


// Ajax-Call
$.ajax({
    url: "uploadUserpic.php",
    data: data,
    type: "POST",
    processData: false,
    contentType: false,
    success : handleData 
});
});

function handleData(data) {
   $("#messagePic").html(data);

   //do some stuff
}

【问题讨论】:

    标签: ajax upload progress-bar


    【解决方案1】:

    $.ajax 不可能,您需要一个 XMLHttpRequest 对象。 试试这个:

    var data = [];
    
    $.ajax({
        xhr: function () {
            var xhr = new window.XMLHttpRequest();
            // For Upload
            xhr.upload.addEventListener("progress", function (evt) {
                if (evt.lengthComputable) {
                    var percentComplete = evt.loaded / evt.total;
    
                }
            }, false);
            // For Download
            xhr.addEventListener("progress", function (evt) {
                if (evt.lengthComputable) {
                    var percentComplete = evt.loaded / evt.total;
    
                }
            }, false);
            return xhr;
        },
        type: 'POST',
        url: "/echo/html",
        data: data,
        success: function (data) {}
    });
    

    http://jsfiddle.net/GvdSy/

    【讨论】:

    • jsfiddle.net/GvdSy 似乎无法在 Chrome 版本中运行:55.0.2883.75 m 但在 Chrome 版本中运行良好:46.0​​.2490.86 m 有什么想法吗?
    猜你喜欢
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2011-09-11
    • 2011-08-19
    相关资源
    最近更新 更多