Todos los archivos de una carpeta junto con su extensión y tamaño en PHP

0 COMENTARIOS -  Publicado hace 13 meses -  Clasificado en: ,

Siguiendo con los scripts dedicados a listar ficheros dada una carpeta en PHP. Esta función devuelve todos los ficheros en una tabla, junto con su extensión y su tamaño. Yo suelo mostrar este tipo de listados en carpetas sobre las que los usuarios de la aplicación tienen acceso y han subido documentos. Puesto que sólo pueden subir ciertos tipos de documentos, la lista de extensiones es bastante limitada; así que en la columna "Ext" muestro tanto el texto identificativo de la extensión como un icono asociado a dicha extensión. De este modo la cosa queda un poco más visual.

function listar_ficheros ($carpeta){
    //Comprobamos que la carpeta existe
    if (is_dir ($carpeta)){
        //Escaneamos la carpeta usando scandir
        $scanarray = scandir ($carpeta);
	echo "<table>
			<tr>
			<td><strong>Nombre</strong></td>
			<td><strong>Ext</strong></td>
			<td><strong>Tamaño</strong></td>
			</tr>";			
        for ($i = 0; $i < count ($scanarray); $i++){
            //Eliminamos  "." and ".." del listado de ficheros
            if ($scanarray[$i] != "." && $scanarray[$i] != ".."){
		//No mostramos los subdirectorios
		if (is_file ($carpeta . "/" . $scanarray[$i])){
                        //Verificamos que la extension se encuentre en $tipos
				echo "<tr>";
				$thepath = pathinfo ($carpeta . "/" . $scanarray[$i]);
				echo "<td>".$scanarray[$i]."</td>";
				echo "<td>".$thepath['extension']."</td>";
				echo "<td>".formato_tam(filesize($carpeta . "/" . $scanarray[$i]));
				echo "</tr>";
                }
            }
        }
	echo "</table>";
    } else {
        echo "La carpeta no existe";
    }
}
function formato_tam($size, $precision = 0) {
    $sizes = array('Tb', 'Gb', 'Mb', 'Kb', 'bytes');
    $total = count($sizes);
    while($total-- && $size > 1024) $size /= 1024;
    return round($size, $precision)." ".$sizes[$total];
}

Un ejemplo de uso sería:

<?php
echo listar_ficheros ("nombre_carpeta");
?>

Lo que devolvería algo como:

Nombre Ext Tam
Images.rarrar48 Mb
JQuery.zipzip14 Kb
JQueryCollapse.htmlhtml1 Kb
JsTableSorter.htmlhtml5 Kb
Modelo Carpeta Ejecutiva.docdoc 103 Kb
.....  

Algunas entradas relacionadas:

También te puede interesar:

Haz un comentario

¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados respecto al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados. Todos los comentarios serán moderados antes de su publicación por lo que su aparición en la web puede verse aplazada un cierto tiempo. Si deseas realizar algún comentario, crítica o sugerencia sobre la propia web puedes hacer a través de la siguiente dirección de correo: webintenta@webintenta.com