在ajax文件上传期间,“ progressEvents”发生了多少次?

时间:2018-12-26 11:10:04

标签: javascript

我是ajax上传的新手,我想在上传过程中添加进度条。

我添加了progressEvent的注册功能,但事实证明该功能只能执行一次一次。因此,我的进度条将无用。

下面是我的代码,我的代码有什么问题?我该怎么做才对?谢谢!

var fileEle = document.querySelector('#file');
file.onchange = function(e){
    let file = e.target.files[0];
    var formData = new FormData();
    formData.append('book',file);

    var xhr = new XMLHttpRequest();
    xhr.onprogress = function(e){
        console.log(e);//this only execute once ,why?
    }
    xhr.open('post','http://127.0.0.1:8080/profile');
    xhr.send(formData);
}

1 个答案:

答案 0 :(得分:0)

实际上,progressEvent将发出很多次。

您应该注册xhr.upload对象

下面是正确的代码:

var fileEle = document.querySelector('#file');
file.onchange = function(e){
    
    let file = e.target.files[0];
    var formData = new FormData();
    formData.append('book',file);

    var xhr = new XMLHttpRequest();
    
    xhr.upload.onprogress = function(e){
        console.log(e);//this only execute once ,why?
     }
    xhr.open('post','http://127.0.0.1:8080/profile');
    xhr.send(formData);
}