Código PHP:
$path = ( 'upload' ); //directoro al cual quiere verrificar su contenido
// abro el directorio raiz
$handle = opendir( $path );
$ficheros = 0;
$archivos = 0;
$ficheros = 0;
$a = 0;
// leo los archivos del directorio
while ( $file = readdir( $handle ) )
{
// Paso a minuscula los nombres de los ficheros
$file = strtolower( $file );
$extencion = explode( ".", $file );
$extencion = end( $extencion );
$tipo = filetype( $path . "/" . $file );
// leo el tamaño de los ficheros
$tama = ( filesize( "$path/$file" ) );
// formateo los numeros a dos decimales
if ( $tama >= 1073741824 )
{
$tama = round( $tama / 1073741824 * 100 ) / 100 . " " . "Gb";
}
else if ( $tama >= 1048576 )
{
$tama = round( $tama / 1048576 * 100 ) / 100 . " " . "Mb";
}
else if ( $tama >= 1024 )
{
$tama = round( $tama / 1024 * 100 ) / 100 . " " . "Kb";
}
else
{
$tama = $tama . " " . "b";
}
// Obtengo la fecha del último cambio en el archivo
$modi = date( "j.n.Y", filemtime( "$path/$file" ) );
// Se obtienen los comentarios del archivo de texto
// Se muestra el icono de las imagenes si el tipo es permitido y el tamaño es mayor a 0. Si no es un directorio
if ( ( @file_exists( "$path/$file" ) ) and ( $tipo != "dir" ) )
{
if ( !@fopen ( "$path/$file.cmt", "r" ) )
{
$coment = "Archivo sin comentarios";
$importancia = "<img src = \"imagenes/warn-1.gif\" alt = \"Sin importancia definida\">";
$ikon = "off";
}
else
$file = file( "$path/$file.cmt");
{foreach ($file as $indice)
{
$linea = explode("|",$file[$indice]);
if ($file[$indice] == 0)
{
$cometario = $linea[1];
$importancia = $linea[0];
}
else
{
if ($linea[0] == $user)
{
$ikon = $linea[1];
$esta = true;
break;
}
else
{
$esta = false;
}
}
}
if ($esta == false)
{
nuevo_f = fopen($archivo, "a+");
nuevo_u = fputs($archivo, "$user{|on}\n");
nuevo_f = fclose($archivo);
}
}
}
if ( in_array( $extencion, $permitidos ) )
{
// Creo un array que contendra todos los archivos aceptados
$img[$a][0] = $file; //nombre del archivo
$img[$a][1] = $tama; //tamaño del fichero
$img[$a][2] = $modi; //fecha de modificacion
$img[$a][3] = $coment; //comentario del archivo
$img[$a][4] = $importancia; //Nivel de importancia del archivo
$img[$a][5] = $extencion; //icono de la extencion
$img[$a][6] = "<img src =\"imagenes/$ikon.gif\">"; //icomo de revision
$a = $a + 1;
$archivos = $archivos + 1;
}
}
else
{
// reviso que no sean ".", ".." o que sea un archivo desconocido?
if ( ( $file != '.' ) and ( $file != '..' ) and ( filetype( "$path/$file" ) != "block" ) )
{
if ( !@fopen ( "$path/$file.cmt", "r" ) )
{
$coment = "Archivo sin comentarios";
$importancia = "<img src = \"imagenes/warn-1.gif\" alt = \"Sin importancia definida\">";
}
else
{
$abre = fopen( "$path/$file.cmt", "r+" );
$coment = fread( $abre, filesize( $abre ) );
$importancia = "<img src = \"imagenes/warn-$coment[1].gif\" alt = \"Nivel de importancia\">";
}
// Creo un array que contendra todos los posibles directorios
$carpeta[$a][0] = $file;
$carpeta[$a][1] = $coment;
$a = $a + 1;
$ficheros = $ficheros + 1;
}
}
}
// cierro el $path
closedir( $handle );
// Cuento el numero de ficheros y los muestro
if ( ( !isset( $img ) ) )
{
echo ( "<center><B>$idioma[11]</b></center><br>" );
}
else
{
// Combino ambos arrays para que todo quede ordenado
// $dir = array_merge($carpeta,$img); //no ahora
// Recorro cada uno de los dos arrays y regreso el valor de cada uno
$b = 1;
foreach ( $img as $key => $value )
{
if ( $b % 2 )
{
$color = "FFFFFF";
$b = $b + 1;
}
else
{
$color = "CCCCCC";
$b = $b + 1;
}
$info = "$path/";
if ( strlen( $img[$key][0] ) > 23 )
{
$file = substr( $img[$key][0], 0, 23 ) . "...";
}
else
{
$file = $img[$key][0];
}
echo "<tr bgcolor=\"#$color\">";
echo "<td><center>{$img[$key][6]}</center></td>";
echo "<td> <a href = \"$path/{$img[$key][0]}\" title=\"Comentarios: \n{$img[$key][3]}\" target = \"_blank\">$file</td>";
echo "<td><div align=\"right\">{$img[$key][1]}</div></td>";
echo "<td><center>{$img[$key][2]}</center></td>";
echo "<td><center>{$img[$key][4]}</center></td>";
echo "<td><center><img src = \"imagenes/formato/t_{$img[$key][5]}.gif\" alt = \"Documento tipo: {$img[$key][5]}\"></center></td>";
echo "</tr>";
}
$dir = count( $img );
$carpeta = @count( $carpeta ); //Si carpeta no esta definida me da 0
echo "</table>";
echo "<br><center>Se han encontrado <b>[ $dir ]</b> archivos y <b>[ $carpeta ]</b> directorios</center>";
echo "</body></html>";
}
?>
hay ciertas cosas que tomar en cuenta:[list=1][*]Debes pasarle al script la variable $_POST['user'] de algun formulario en mi caso era login.php[*]Cambia el header por la ubicacion de tu formulario de registro[*]Falta de incluir el mod de idiomas que contiene un arreglo con todos los mensajes del script.. ($idioma[1] = "hola....")[*]Si estas en linux poner los permisos de lectura/escritura a la carpeta[*]La ruta path es donde esta la carpeta a la que quieres subir los archivos[*]el arreglo "permitidos", son loos tipos de extencion que se pueden subir, por ahora la validacion mime la dejo para otra version[*]por lo dema pregunten que ya me canse....[/list=1]
ahorita estoy subiendo el script alycos para probarlo en ambiente "real" luego les doi el URL