使用Progressbar上传Jquery

时间:2016-03-05 19:18:01

标签: ajax upload progress-bar

我有一个工作正常的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
}

1 个答案:

答案 0 :(得分:0)

$ .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/