Я использую следующий код в Vue. Здесь я загружаю несколько файлов одновременно, используя несколько запросов ax ios. Все работает нормально в этом коде. Но я хочу, чтобы увидеть, сколько% файла загружено. Смотрите, есть массив this.upload файлов объекта, имеющего свойство progress. Поэтому я хочу обновить это свойство для указанного объекта c. чтобы я мог показать пользователю прогресс загрузки файла
for(var file of event.target.files){
if(!this.isValidFormat(file)) continue;
var thumb = await this.getThumb(file);
this.upload.push({
name: file.name,
index: parseInt(Math.round(file.size / (1024))),
size: (file.size / (1024 * 1024)).toFixed(2) + ' MB',
progress: 0,
thumbnail: thumb,
path: null
});
const formData = new FormData();
formData.append('image', file, file.name);
formData.append('path', 'tmp');
formData.append('index', increment);
axios.post('web/upload', formData, {
onUploadProgress: progressEvent => {
//console.log(this.config);
const index = parseInt(Math.round(progressEvent.total / 1024));
//console.log(index)
var u = this.upload.find(u => u.index == index);
if(u !== undefined){
u.progress = Math.floor((progressEvent.loaded * 100) / progressEvent.total);
}
}
}).then(res => {
this.upload[res.index].path = res.path;
console.log(this.upload)
});
increment++;
}