在做上传文件的时候,想要在上传时把每个文件的进度条显示出来,于是找到了addEventListener这个方法,这里记录一下在实现进度条的过程中遇到的坑。
直接上JS代码
var files = $("#upload")[0].files
for (var i = 0; i < files.length; i++ ) {
var formData = new FormData();
formData.append("file", files[i]);
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false,
xhr: function() {
var xhr = new XMLHttpRequest();
//使用XMLHttpRequest.upload监听上传过程,注册progress事件,打印回调函数中的event事件
xhr.upload.addEventListener('progress', function(e){
var progressRate = Math.round((e.loaded / e.total) * 100) + '%';
//通过设置进度条的宽度达到效果
console.log(`fileName:', files[i].name, uploaded:', progressRate);
});
return xhr;
},
success: function (arg) {
console.log(arg)