2014-06-08 3 views
0

내 백본 응용 프로그램에서 핸들 막대 템플릿을 사용하고 있습니다.핸들 막대 파일 크기 계산

내 응용 프로그램의 일부에서는 파일 크기가 바이트 단위로 표시됩니다. 그리고 프런트 엔드에서 바이트로 표시하지 않고 Byes, KB, MB, GB로 파일의 크기에 따라 표시하려고합니다.

if else 블록과 KB, MB, GB의 바이트 값을 사용하면 쉽게 할 수 있습니다. 예 :

HandleBars.registerHelper('filesize', function(bytes) { 
     if(bytes < 1024) 
     return bytes+'Bytes' 
     else if(bytes >= 1024 && bytes < 1048576) 
     return (bytes/1024) + 'KB' 
    }); 

아무에게 나 제안, 더 나은 방법이 할 수 있습니다.

+1

가능한 중복 [KB, MB 바이트의 크기를 변환하는 올바른 방법으로 자바 스크립트에서, GB (http://stackoverflow.com/questions/15900485/correct-way-to-convert-size-in -bytes-to-kb-mb-gb-in-javascript) – ShitalShah

답변

-2

그래, Javascript의 Math.log & Math.pow 함수를 사용하면됩니다. 그 기능을 최소화합니다.

HandleBars.registerHelper('filesize', function(bytes) { 
     var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; 
     if (bytes == 0) return '0 Bytes'; 
     var i = parseInt(Math.floor(Math.log(bytes)/Math.log(1024))); 
     return (bytes/Math.pow(1024, i)).toFixed(2) + ' ' + sizes[i]; 
    }); 
+3

원본 답변은 http://stackoverflow.com/questions/15900485/correct-way-to-convert-size-in-bytes- to-kb-mb-gb-in-javascript – ShitalShah