JS格式化文件大小 单位:Bytes、KB、MB、GB
输入一个表示文件大小的数字,自适应转换到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"