输入一个表示文件大小的数字,自适应转换到KB,MB,GB
方法一:bytes自适应转换到KB,MB,GB
/// <summary>
/// 格式化文件大小的JS方法
/// </summary>
/// <param name="filesize">文件的大小,传入的是一个bytes为单位的参数</param>
/// <returns>格式化后的值</returns>
function renderSize(filesize){
if(null==value||value==''){
return "0 Bytes";
}
var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
var index=0;
var srcsize = parseFloat(value);
index=Math.floor(Math.log(srcsize)/Math.log(1024));
var size =srcsize/Math.pow(1024,index);
size=size.toFixed(2);//保留的小数位数
return size+unitArr[index];
}
方法二:bytes自适应转换到KB,MB,GB
function formatFileSize(fileSize) {
if (fileSize < 1024) {
return fileSize + 'B';
} else if (fileSize < (1024*1024)) {
var temp = fileSize / 1024;
temp = temp.toFixed(2);
return temp + 'KB';
} else if (fileSize < (1024*1024*1024)) {
var temp = fileSize / (1024*1024);
temp = temp.toFixed(2);
return temp + 'MB';
} else {
var temp = fileSize / (1024*1024*1024);
temp = temp.toFixed(2);
return temp + 'GB';
}
}
方法三:可以设定输入的文件长度的参数的原始单位,自适应转换到KB,MB,GB
/**
* [fileLengthFormat 格式化文件大小]
* @param {[int]} total [文件大小]
* @param {[int]} n [total参数的原始单位如果为Byte,则n设为1,如果为kb,则n设为2,如果为mb,则n设为3,以此类推]
* @return {[string]} [带单位的文件大小的字符串]
*/
function fileLengthFormat(total, n) {
var format;
var len = total / (1024.0);
if (len > 1000) {
return arguments.callee(len, ++n);
} else {
switch (n) {
case 1:
format = len.toFixed(2) + "KB";
break;
case 2:
format = len.toFixed(2) + "MB";
break;
case 3:
format = len.toFixed(2) + "GB";
break;
case 4:
format = len.toFixed(2) + "TB";
break;
}
return format;
}
}
//假如文件大小为1024byte,想自适应到kb,则如下传参
fileLengthFormat(1024,1);//"1.00KB"
//假如文件大小为1024kb,想自适应到mb,则如下传参
fileLengthFormat(1024,2);//"1.00MB"
//测试
fileLengthFormat(112233445566,1);//"104.53GB"