gpt4 book ai didi

javascript - 如何使用javascript显示进度状态以及如何检查所有文件是否已上传

转载 作者:行者123 更新时间:2023-12-02 23:02:47 26 4
gpt4 key购买 nike

我正在创建多个文件上传,将文件上传到远程 api,到目前为止它工作正常,这是我的问题。

  1. 如果我删除多个文件,它会被一个一个上传,所以我怎样才能知道所有文件是否已上传,以便在所有文件上传后我可以运行另一个功能 例如,我有 3 个文件要上传,当我上传 api 调用时,如 1sfile --> 第二个文件 --> 第三个文件,在总上传成功后,我想调用一个函数,

  2. 在此过程中如何显示静态进度,因为它正在一个接一个地上传,进度会多次出现,直到总文件完成我想显示进度下面是我的上传代码::

    函数上传图片(e){
    var upload_count=0,fail_count=0;

    for(let i=0;i<e.files.length;i++){
    let xhr = new XMLHttpRequest();
    let formData = new FormData();
    let images = e.files[i];
    formData.set('file',images);

    xhr.onreadystatechange = state => {


    if(xhr.status==201){
    upload_count++;
    if(upload_count==e.files.length){
    console.log("completed all")

    }
    }
    else if(xhr.status==400){
    fail_count++;

    if(fail_count==e.files.length){

    }
    }
    console.log("i="+i)
    console.log("lenght=="+e.files.length)


    }
    xhr.open("POST", '<some api>');
    xhr.send(formData);
    }

    }

最佳答案

我将向您展示使用 Jquery 制作上传进度条的众所周知的方法。

$.ajax({
xhr: function () {
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
console.log(percentComplete);
$('.progress').css({
width: percentComplete * 100 + '%'
});
if (percentComplete === 1) {
$('.progress').addClass('hide');
}
}
}, false);

return xhr;
},
type: 'POST',
url: "you_api_path",
data: your_data,
success: function (data) {
$('#status').html('<b>Uploaded!!!</b>')
}
});
.progress {
display: block;
text-align: center;
width: 0;
height: 3px;
background: red;
transition: width .3s;
}
.progress.hide {
opacity: 0;
transition: opacity 1.3s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="progress"></div>
<div id="status"></div>

这是工作 fiddle :http://jsfiddle.net/jnzwcgbs/

关于javascript - 如何使用javascript显示进度状态以及如何检查所有文件是否已上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57720134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com