Привет, я пытаюсь загрузить файл 2 или более, моя проблема заключается в том, что мой индикатор выполнения скажет 100% из-за того, что сначала загружен небольшой файл, а затем возвращается к проценту большой файл. Мой вопрос: как я могу добиться такого же прогресса, если у меня будет загружено много файлов?Прогресс в ajax при загрузке 2 файлов и более
for (var i = 0, f; f = files.files[i]; i++) {
$.ajax({
xhr: function(){
//upload Progress
var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
xhr.upload.addEventListener('progress', function(event) {
var percent = 0;
var position = event.loaded || event.position;
var total = event.total;
if (event.lengthComputable) {
percent = Math.ceil(position/total * 100);
}
//update progressbar
$('.bar').width(percent + '%');
}, true);
}
return xhr;
},
url: 'https://content.dropboxapi.com/2/files/upload',
type: 'post',
data: f,
processData: false,
contentType: 'application/octet-stream',
headers: {
"Authorization": "Bearer ACCESS TOKEN",
"Dropbox-API-Arg": '{"path": "/'+f.name+'", "mode": "add","autorename": true,"mute": false}'
},
success: function (data) {
console.log(data);
app.alert.show('success-message', {
level: 'success',
messages: 'your file has been upload to Dropbox',
autoClose: true
});
},
error: function (data) {
console.log(data);
}
})
}
Из того, что я вижу, вы каждый раз добавляете каждый файл, так что вам нужен индикатор выполнения для каждого – madalinivascu
Есть ли способ только 1 индикатор выполнения и может прочитать загрузку всех файлов? – VLR
да, но вам нужно будет рассчитать общий размер всех файлов – madalinivascu