In JavaScript è semplice formattare la dimensione di un file.
La soluzione è la seguente:
'use strict';
const formatFileSize = ( bytes, decimalPoint = 2 ) => {
if( bytes === 0 ) return '0';
const k = 1000,
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( decimalPoint) ) + ' ' + sizes[ i ];
};
Esempio d'uso in un form di upload:
'use strict';
document.querySelector('#file').addEventListener('change', () => {
if( this.files.length > 0 ) {
console.log( formatFileSize( this.files[0].size ));
}
});