Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/07/2005, 14:04
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ok... el problema es que is_dir($file) va a verificar si $file es un directorio, pero desde el contexto de ejecución del script. Lo que tienes que hacer es buscar dentro de $dir.

Del mismo modo, como ya te había comentado antes, la variable "dir" que pasas por url, debe incluir el path completo.
Código PHP:
if(isset($_GET['dir'])){
    
$dir $_GET['dir']."/";
}else{
    
$dir "./";
}
if (
$handle opendir($dir)) {
    while (
$file readdir($handle)) {
        if (
$file != "." && $file != "..") {
            
$extensio substr($file,strpos($file,".")+1);
            
            
// Verifica el path completo
            
if (is_dir($dir.$file)){
                
// Recuerda, además, pasar como "dir" el path completo a ese dir.
                
echo "<img src='images/folder.gif' width=20><a href='$_SERVER[PHP_SELF]?dir=$dir$file'>$file</a><br>";
            }else{
                switch (
$extensio){
                    case 
"gif":
                        echo 
" <img src='images/img2.gif' width=20> $file <br>" ;
                        break;
                    case 
"png":
                        echo 
"<img src='images/img2.gif' width=20> $file <br>";
                        break;
                    case 
"jpg":
                        echo 
"<img src='images/img.gif' width=20> $file <br>";
                        break;
                    case 
"php":
                        break;
                    case 
"txt":
                        echo 
"<img src='images/text.gif' width=20> $file <br>";
                        break;
                    case 
"html":
                        echo 
"<img src='images/web.gif' width=20> $file <br>";
                        break;
                    case 
"htm":
                        echo 
"<img src='images/web.gif' width=20> $file <br>";
                        break;
                    case 
"css":
                        echo 
"<img src='images/text.gif' width=20> $file <br>";
                        break;
                    default:
                        
// Aquí te recomiendo no poner la imagen de "folder" porque puede prestarse a confusiones.
                        // deberías tener otra imagen para el archivo genérico (o no reconocido)
                        
echo "<img src='images/folder.gif' width=20> $file <br>";
                        break;
                }
            }
        }
    }
    
closedir($handle);

Saludos