Обычно размеры файлов хранятся в байтах. Для удобного отображения можно применять следующую функцию
function bytes2readable($v, $l = 0, $precision = 2) {
$label = array(' Кб', ' Мб', ' Гб');
$val = $v / 1024;
if (floor($val) >= 1024) {
$l++;
$val = bytes2readable(floor($val), &$l);
}
return round($val, $precision).$label[$l];
}
bytes2readable(1000); // 0.98 Кб
bytes2readable(10000); // 9.77 Кб
bytes2readable(123456789); // 117.74 Мб
9.03.2008

Функция для удобного отображения размера файла работает некорректно .....
Правильно переводятся только килобайты ....
function bytes2words($size) {
for($i=0; $i<count($st=array('Кб','Мб','Гб')); $i++) {
if (($size/=1024)<1024) { $i++; break; }
}
return round($size,2).' '.$st[($i-1)];
}