بطور کلی، زمانی که در کدهای جاوا اسکریپت بخواهیم اندازه فایل رو بدست بیاریم؛ اندازه فایل بر اساس بایت بدست می‌آید.

حالا اگر بخواهیم سایز فایل را به کاربر نشان بدهیم یک عدد طولانی و غیر قابل فهم توسط کاربران عادی خواهد بود؛ برای رفع این مشکل در این پست یک تابع برای تبدیل بایت به کیلو بایت، مگابایت، گیگابایت تا ... رو بهتون معرفی خواهم کرد.

کار این تابع اینه که سایز فایل رو که بر حسب بایت هست رو میگیره و اونو تبدیل به کیلو بایت یا مگابایت یا گیگا بایت یا ترا بایت میکنه.

چگونه در جاوا اسکریپت سایز فایل رو بر اساس Kb یا Mb یا Gb نشون بدیم

function formatFileSize(bytes,decimalPoint) {
   if(bytes == 0) return '0 Bytes';
   var k = 1000,
       dm = decimalPoint || 2,
       sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
       i = Math.floor(Math.log(bytes) / Math.log(k));
   return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}
تابع بالا دو پارامتر به عنوان ورودی میگیره که در زیر به توضیح هر کدوم میپردازم.
bytes: این پارامتر باید بر اساس بایت باشه؛ شما میتونید سایز فایل رو بگیرید و به عنوان پارامتر به این تابع ارسال کنید. (این پارامتر اجباری است).
decimalPoint: این پارامتر تعداد اعداد بعد از ممیز رو مشخص میکنه که بطور پیش فرض روی ۲ عدد بعد از ممیز هست؛ که میتونید با ست کردن پارامتر دوم این تابع به دلخواه تغییر بدهید (این پارامتر اختیاری است).

خب در زیر خروجی چند ورودی مختلف تابع رو قرار دادم.
formatBytes(2000);       // 2 KB
formatBytes(2234);       // 2.23 KB
formatBytes(2234, 3);    // 2.234 KB