Ever clicked a link only to find out that the image/download was massive and you wished you hadn’t? Wouldn’t it have been nice to have an idea of the file-size when hovering over the link?
function byteConvert(num) {
var result = 0;
var unit = "";
// Set unit variables for convenience
var bytes = 1;
var kb = 1024;
var mb = 1048576;
var gb = 1073741824;
// Check for non-numeric or negative num argument
if (not isNumeric(num) OR num LT 0)
return "Invalid size argument";
// Check to see if unit was passed in, and if it is valid
if ((ArrayLen(Arguments) GT 1)
AND ("bytes,KB,MB,GB" contains Arguments[2]))
{
unit = Arguments[2];
// If not, set unit depending on the size of num
} else {
if (num lt kb) { unit ="bytes";
} else if (num lt mb) { unit ="KB";
} else if (num lt gb) { unit ="MB";
} else { unit ="GB";
}
}
// Find the result by dividing num by the number represented by the unit
result = num / Evaluate(unit);
// Format the result
if (result lt 10)
{
result = NumberFormat(Round(result * 100) / 100,"0.00");
} else if (result lt 100) {
result = NumberFormat(Round(result * 10) / 10,"90.0");
} else {
result = Round(result);
}
// Concatenate result and unit together for the return value
return (result & " " & unit);
}