DEV Community

Kamiswara Angga W.
Kamiswara Angga W.

Posted on • Edited on

Menghitung Batas Maksimal Ukuran File di JavaScript

Di dalam framework JavaScript modern, ketika kita upload file, biasanya kita bikin function handler untuk menangani jika terjadi perubahan pada isi dari input bertipe file. Misalnya di Vue JS seringnya seperti ini:

async fileChange(e) {
  if (e.target.files[0].size / (1024 * 1024) > 10) {
    this.fileError = "File size is too large (max 10 MB)";
  } else {
    this.file = e.target.files[0];
  }
},
Enter fullscreen mode Exit fullscreen mode

Maksud dari code di atas adalah, jika ukuran file yang dipilih lebih dari 10 MB, maka akan muncul pesan error. Jika ukuran file kurang dari atau sama dengan 10 MB, maka file akan ditaruh di dalam state.


Kenapa kita harus tulis code (1024 * 1024) di code kita? Kenapa kita gak langsung tuliskan 1048576?

Karena ada perbedaan perhitungan ukuran file di sistem operasi yang berbeda. Misal perhitungan ukuran file di Windows berbeda dengan Linux Ubuntu.


Perhitungan file di Windows:

Windows file calculation

Perhitungan file di Ubuntu Linux:

Ubuntu Linux file calculation


Stackoverflow explanation

Baca lebih lanjut:

https://askubuntu.com/questions/341143/why-same-file-shows-different-sizes-in-different-operating-systems

Dengan solusi ini, perbedaan perhitungan di OS yang berbeda bisa diatasi, solusi menurutmu kaya gimana?

Top comments (0)