Este tamaño, en el caso de que el fichero sea grande, es posible que lo queramos representar en kilobytes, megabytes..., o simplemente dejar que la función decida la magnitud más adecuada.
En este caso hemos realizado una función que recoge esta posibilidad:
function convertFileSize($file, $size=null, $decimals=2, $dec_sep='.', $thousands_sep=','){ if (!is_file($file)){ return "El fichero no existe"; } $bytes = filesize($file); $sizes = 'BKMGTP'; if (isset($size)){ $factor = strpos($sizes, $size[0]); if ($factor===false){ return "El tamaño debe ser B, K, M, G, T o P"; } } else { $factor = floor((strlen($bytes) - 1) / 3); $size = $sizes[$factor]; } return number_format($bytes / pow(1024, $factor), $decimals, $dec_sep, $thousands_sep).' '.$size; }
Los parámetros son:
$file: ruta completa del fichero
$size: magnitud en la que queremos obtener el resultado. Si lo dejamos a null hará el cálculo la propia función
$decimals: número de decimales que queremos que nos muestre. Por defecto nos mostrará 2.
$dec_sep: separador decimal. Por defecto coge el punto que es el que se usa en inglés.
$thousand_sep: separador de miles. Por defecto coge la coma que es el que se usa en inglés.
No hay comentarios:
Publicar un comentario