يمكن استخدام الحزمة progress-stream وتتطلب تعديل طفيف بالشيفرة لتصبح كاالتالي:
var p = progress()
var upload = multer().single('file')
req.pipe(p)
p.headers = req.headers
p.on('progress', _)
upload(p, res, _)
حيث يتم ربط progress مع مع الملف المراد رفعه.
_________
إن كان العرض مطلوب لدى المستخدم، يمكن عمل متتبع ضمن Front End:
// تجهيز البيانات و الملف للإرسال
var formData = new FormData();
var file = document.getElementById('myFile').files[0];
formData.append('myFile', file);
var xhr = new XMLHttpRequest();
// تجهيز رابط رفع الملف
xhr.open('post', '/urluploadhere', true);
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
// تحريك المؤشر كلما تم الإنتهاء من جزء من الملف بطول ذلك الجزء
var percentage = (e.loaded / e.total) * 100;
console.log(percentage + "%");
}
};
// معالجة خطأ
xhr.onerror = function(e) {
console.log('Error');
console.log(e);
};
// ربط التحميل مع الدالة
xhr.onload = function() {
console.log(this.statusText);
};
// الإرسال
xhr.send(formData);