PHP - DIRECTORIOS CON PHP

 
Vista:
sin imagen de perfil

DIRECTORIOS CON PHP

Publicado por daniel (3 intervenciones) el 20/01/2017 21:03:54
Hola, me podrían ayudar tengo un directorio creado en php listando todo mi escritorio pero cuando llego a un archivo quiero abrirlo pero solo me abre su codificación , me podrían dar una ayuda?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
 
//Por defecto la primera vez que abrimos este explorador toma
//como carpeta la del php actual. La constante __FILE__ es la
//ruta del archivo PHP actual. Con dirname obtenemos la carpeta.
$ruta = dirname("C:/Users/DANIEL/Desktop")."/";
//Para abrir archivos necesitaremos poner la codificación
//adecuada con estos valores
 
 
//Por defecto usamos esta para htmlentities (ver más abajo)
$codificacion = "ISO-8859-1";
 
//Vemos si hay algo en el GET
if (isset($_GET)){
    foreach($_GET as $campo=>$valor){
        switch ($campo) {
            //Obtenemos una ruta, carpeta o archivo
            case "una-ruta":
                $ruta = htmlspecialchars($valor, ENT_QUOTES);
                if (get_magic_quotes_gpc() == 1) $ruta = stripslashes($ruta);
                break;
            //Vemos la codificación
            case "una-codificacion":
                $codificacion = htmlspecialchars($valor, ENT_QUOTES);
                if (get_magic_quotes_gpc() == 1) $codificacion = stripslashes($codificacion);
                break;
 
        }
    }
}
 
//Si la ruta es vacía, pone la del presente script
if ($ruta == "C:/Users/DANIEL/Desktop") $ruta = dirname("C:/Users/DANIEL/Desktop")."/";
 
//Esta variable contendrá la lista de nodos (carpetas y archivos)
$presenta_nodos = "";
 
//Esta variable es para el contenido del archivo
$presenta_archivo = "";
 
//Si la ruta es una carpeta, la exploramos. Si es un archivo
//sacamos también el contenido del archivo.
if (is_dir($ruta)){//ES UNA CARPETA
    //Con realpath convertimos los /../ y /./ en la ruta real
    $ruta = realpath($ruta)."/";
    //exploramos los nodos de la carpeta
    $presenta_nodos = explora_ruta($ruta);
} else {//ES UN ARCHIVO
    $ruta = realpath($ruta);
    //Sacamos también los nodos de la carpeta
    $presenta_nodos = explora_ruta(dirname($ruta)."/");
    //Y sacamos el contenido del archivo
    $presenta_archivo = "<br />CONTENIDO DEL ARCHIVO: ".
    $ruta."<pre>".
    explora_archivo($ruta, $codificacion).
    "</pre>";
}
//Función para explorar los nodos de una carpeta
//El signo @ hace que no se muestren los errores de restricción cuando
//por ejemplo open_basedir restringue el acceso a algún sitio
function explora_ruta($ruta){
    //En esta cadena haremos una lista de nodos
    $cadena = "";
    //Para agregar una barra al final si es una carpeta
    $barra = "";
    //Este es el manejador del explorador
    $manejador = @dir($ruta);
    while ($recurso = $manejador->read()){
        //El recurso sera un archivo o una carpeta
        $nombre = "$ruta$recurso";
        if (@is_dir($nombre)) {//ES UNA CARPETA
            //Agregamos la barra al final
            $barra = "/";
            $cadena .= "CARPETA: ";
        } else {//ES UN ARCHIVO
            //No agregamos barra
            $barra = "";
            $cadena .= "ARCHIVO: ";
        }
        //Vemos si el recurso existe y se puede leer
        if (@is_readable($nombre)){
            $cadena .= "<a href=\"".$_SERVER["PHP_SELF"].
            "?una-ruta=$nombre$barra\">$recurso$barra</a>";
        } else {
            $cadena .= "$recurso$barra";
        }
        $cadena .= "<br />";
    }
    $manejador->close();
    return $cadena;
}

//Función para extraer el contenido de un archivo
function explora_archivo($ruta, $codif){
    //abrimos un buffer para leer el archivo
    ob_start();
    readfile($ruta);
    //volcamos el buffer en una variable
    $contenido = ob_get_contents();
    //limpiamos el buffer
    ob_clean();
    //retornamos el contenido después de limpiarlo
    //aplicando la codificación seleccionada
    return htmlentities($contenido, ENT_QUOTES, $codif);
}

?>
   
    <?php
        echo "<br />$presenta_nodos";
        echo "<br />$presenta_archivo";
    ?>
  
pant
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

DIRECTORIOS CON PHP

Publicado por xve (6935 intervenciones) el 21/01/2017 18:46:14
Hola Daniel, es que estas iniciando que quieres mostrar su contenido, y ese es el contenido de un archivo de imagen... exactamente que quieres que haga, que se visualice la imagen en la web? Si es así, en la función explora_archivo() tienes que poner algo como:
1
return "<img src='".$ruta."'>";

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

DIRECTORIOS CON PHP

Publicado por Daniel chavarria (3 intervenciones) el 21/01/2017 19:10:06
Hola, primero que todo mil gracias por la ayuda. Quisiera mostrar imágenes y unos . txt y si es posible unos PDF me perdonas la ignorancia he estado intentado que muestre la mayoría de los archivos pero me está quedando grande. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

DIRECTORIOS CON PHP

Publicado por xve (6935 intervenciones) el 21/01/2017 20:20:41
Hola Daniel, para ello, tendrás que revisar el tipo de archivo y definir los formatos a abrir como los txt, formatos a mostrar como imágenes (jpg, jpeg, png, gif) y los archivos a enlazar, como pueden ser los pdf por ejemplo, para que se abran en una pestaña nueva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

DIRECTORIOS CON PHP

Publicado por daniel (3 intervenciones) el 23/01/2017 16:18:07
en concreto serian (.DOC - PDF-JPG-PNG) podrias darme una mano soy nuevo en esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar