654380491
hola@carlosdk.com
Login
[miniorange_social_login]

Login with your site account

Lost your password?

Carlos DK Carlos DK
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
Back
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
  • Home
  • Blog
  • Tutoriales formativos
  • Leer directorio y mostrar archivos en PHP

Tutoriales formativos

12 Mar

Leer directorio y mostrar archivos en PHP

  • By Carlos Dk
  • In Tutoriales formativos
  • 0 comment

Bienvenid@s a ver tutoriales.com, en esta ocasión os traigo un código PHP para listar los archivos (ficheros) de un directorio.

Como vereis, es muy simple de utilizar y de entender, este código es utilizable por ejemplo para un gestor de archivos o imagenes. Recogiendo las imagenes de la carpeta y poniendo la opción de eliminar o cualquier cosa que se os ocurra.

En el ejemplo, solo vamos a listar todas las imagenes jpg que existan dentro del directorio que seleccionemos.

Sin más preambulos, os dejo el código y lo comentamos:

<?
//Asignamos la ruta a la variable path
$path=”./direccion/”;
//asignamos a $directorio el objeto dir creado con la ruta
$directorio=dir($path);

//y ahora lo vamos leyendo hasta el final
while ($archivo = $directorio->read())
{
//
if($archivo!=”.” AND $archivo!=”..”)
//ponemos el nombre de archivo a minuscula y recojemos solo los tres caracteres por la izquierda
//para saber la extensión
if (strtolower(substr($archivo, -3) == “jpg”))
{
//si es jpg,lo mostramos por pantalla
echo “$archivo <br>”;
}
}
}
//descargo el objeto
$directorio->close();
?>

Pues poco más que explicar, espero que este pequeño código os ayude como a mí para el gestor de imagenes.

Un saludo!

Tags:phpProgramacion
  • Share:
Carlos Dk

You may also like

Crear categorías y configurar menú en WordPress en 4 min.

  • marzo 3, 2019
  • by Carlos Dk
  • in Tutoriales formativos
Crear categoría y menú WordPress Es indispensable en una nueva instalación de WordPress, crear las...
Instalar tema en WordPress en 2 pasos
febrero 23, 2019
Actualizar MySQL 5.1 a 5.6 en CentOS 6.9 con Plesk como panel
octubre 20, 2018
Recorrer todos los objetos de una capa o del DOM completo con JQuery
diciembre 22, 2014

    Comments

  1. priscila
    febrero 28, 2011

    Excelente ayuda! Gracias

    Responder
    • VideoTutoriales
      febrero 28, 2011

      De nada 🙂

      Responder
  2. Javier
    junio 2, 2011

    oye y donde esta la función right?

    Responder
    • VideoTutoriales
      junio 2, 2011

      ¿la función right para qué?

      Responder
  3. Miguel
    agosto 8, 2011

    Saludos,

    Una pregunta como muestro eso en un html???
    Estoy empezando y quisiera ayuda.

    El objetivo que tengo es:

    Tengo una carpeta en donde existen varios PDF, y un html en donde quiero que se muestre el listado de archivos y se puedan descargar….

    Responder
    • VideoTutoriales
      agosto 8, 2011

      Pues no conlleva mucho cambio en el código expuesto, lo primero sería cambiar el “jpg” por “pdf” para que muestre solamente los pdf, y para la descarga solo sería poner un enlace hacia estos, es decir, deberás de cambiar la linea:
      echo “$archivo “;
      por esta otra:
      echo ”.$archivo.”;

      Con ese código debe de ser suficiente.

      Ya me cuentas, un saludo!

      Responder
  4. VideoTutoriales
    septiembre 7, 2011

    He modificado una parte del código ya que como preguntaban en un comentario la función right no la tiene php, así que la manera sería utilizar substr($archivo, -3)

    Así se simula la función 😉

    Un saludo!

    Responder
  5. roni
    octubre 14, 2011

    a mi me da error en la linea if strtolower (substr($archivo, -3) != “jpg”))
    y al final un corchete cerrado tambien lo lee como error

    Responder
    • VideoTutoriales
      octubre 14, 2011

      Mira que quede como esto:

      if (strtolower(substr($archivo, -3) == “jpg”))

      Lo del corchete no sé cual es, si quieres pega el código y lo vemos.

      Un saludo!

      Responder
  6. Villa Gesell
    mayo 15, 2012

    excelente articulo, gracias

    Responder
    • VideoTutoriales
      mayo 15, 2012

      Nada 🙂

      Responder
  7. miguel
    junio 21, 2012

    oye tengo nun inconveniente acerca de el tema de descargar pdf … no me descargar uiero que me muetsre el listado de los pdf que tengo en la carpeta del directorio pero no me descargar cambiar la funcion con esta :
    Pues no conlleva mucho cambio en el código expuesto, lo primero sería cambiar el “jpg” por “pdf” para que muestre solamente los pdf, y para la descarga solo sería poner un enlace hacia estos, es decir, deberás de cambiar la linea:
    echo “$archivo “;
    por esta otra:
    echo ‘‘.$archivo.’‘; esta es la linea que no me funciona
    tienes una solucion a esto mira te dejo mi codigo
    read())
    {
    //
    if($archivo!=”.” OR $archivo!=”..”)
    //ponemos el nombre de archivo a minuscula y recojemos solo los tres caracteres por la izquierda
    //para saber la extensión
    if (strtolower(substr($archivo, -3) == “pdf”))
    {
    //si es jpg,lo mostramos por pantalla
    echo “.$archivo. “;

    }
    }

    //descargo el objeto
    $directorio->close();

    ?>

    Responder
    • VideoTutoriales
      junio 21, 2012

      Ponla sin las comillas:
      echo $archivo;

      Responder
  8. Miguel
    octubre 26, 2012

    Buenas al listar los archivos me salen caracteres extraños en vez de tildes y eñes, tengo los caracteres en utf 8, que puedo hacer?

    Responder
    • VideoTutoriales
      octubre 26, 2012

      Cambia si puedes por una codificación genérica.

      Responder
  9. peter
    octubre 26, 2012

    Bueno para los que deseen mostrar y al mismo tiempo descargar el archivo el código sería:

    en lugar de:
    echo “$archivo ”;

    coloquen:
    echo "< a href='directorio/$archivo' rel="nofollow" >$archivo< /a >" . "";

    Responder
  10. jorge
    octubre 27, 2012

    una pregunta, todo me sale bien, pero si yo quisiera agregarle la funcion de ademas de mostrar el archivo y descargarlo, tambien que se muestre el tamaño del archivo y la ultima vez que fue modificado??? estoy tratando con:

    read())
    {
    //
    if($archivo!=”.” OR $archivo!=”..”)
    //ponemos el nombre de archivo a minuscula y recojemos solo los tres caracteres por la izquierda
    //para saber la extensión
    if (strtolower(substr($archivo, -3) == “jpg”))
    {
    //funcion para obtener tamaño
    function tamano_archivo($peso , $decimales = 2 ) {
    $clase = array(” Bytes”, ” KB”, ” MB”, ” GB”, ” TB”);
    return round($peso/pow(1024,($i = floor(log($peso, 1024)))),$decimales ).$clase[$i];
    }

    $peso_archivo = filesize($archivo); // obtenemos su peso en bytes

    //si es jpg,lo mostramos por pantalla
    echo “$archivo ” . tamano_archivo($peso_archivo) .””;
    }
    }
    //descargo el objeto
    $directorio->close();
    ?>

    me muestra el nombre del archivo y me da opción a descargarlo, pero no me muestra el tamaño me sale error:

    Warning: filesize() [function.filesize]: stat failed for nombre_del_archivo.jpg in /home/public_html/web/noticias/index.php on line 128

    Warning: Division by zero in /home/public_html/web/noticias/index.php on line 125
    nombre_del_archivo.jpg 0

    Quien me puede ayudar??

    Responder
    • VideoTutoriales
      octubre 28, 2012

      A la función tendrás que pasarle la ruta completa, seguramente está intentando abrir un fichero que no encuentra y de paso pues está dividiendo por 0, ya que al no tener “peso” este es 0.

      Pásale la ruta completa y nos cuentas.

      Un saludo!

      Responder
  11. jorge
    octubre 28, 2012

    Ya lo intente y me bota error, dime como lo harías tu? mostrar un listado de los archivos que se encuentran en esa carpeta y ademas cuanto pesa cada archivo??? se los agradecería bastante!

    Responder
  12. VideoTutoriales
    octubre 28, 2012

    Buenas jorge, sin revisar el código te paso un artículo que acabo de escribir para solventar el problema:
    http://www.vertutoriales.com/index.php/mostrar-tamano-de-un-archivo-o-fichero-en-php-con-filesize/

    La función que tienes en realidad lo que hace es “manipular” el número para devolver un valor formateado, eso se puede hacer de muchas maneras, pero lo importante que necesitas está en el artículo de mostrar tamaño de un archivo que te anexaba más arriba.

    Espero que te sirva! si tienes más dudas compártelas 🙂

    Responder
  13. Invitado
    diciembre 16, 2012

    Me gustaria saber como puedo hacer si quiero que me indexe no solo los directorios de una carpeta, sino tambien los del contenido de las carpetas que existan dentro de este, las de dentro de estas y asi sucesivamente, lo que seria enlistar todo el contenido, un saludo.

    Responder
  14. Gaby
    diciembre 26, 2012

    Hola estoy tratado de mostrar unos archivos pdf que tengo en un directorio de mi servidor, pero cuando cargo la pag me pone la pantalla en gris y dice “SE HA PRODUCIDO UN ERROR AL CARGAR EL DOCUMENTO PDF”. Y el codigo que tengo es el siguiente:

    $dir = “pdf/”.$idpac.”/”.$visita;
    $dh = opendir($dir);
    while (false !== ($nombre_archivo = readdir($dh))) {
    $archivos[] = $nombre_archivo;
    }

    $total_archivos = count($archivos);
    $total = $total_archivos-2;
    //TERMINA DE CONTAR
    //echo(“UN TOTAL DE PDF´S ” + $total);
    $directorio=dir($dir);
    while ($archivo = $directorio->read())
    {
    //
    if($archivo!=”.” OR $archivo!=”..”){
    if (strtolower(substr($archivo, -3) == “pdf”))
    {//si es jpg,lo mostramos por pantalla
    echo “$archivo “;
    }
    }
    }

    //descargo el objeto
    $directorio->close();
    ?>

    espero me puedan ayudar, gracias y saludo!!!

    Responder
    • VideoTutoriales
      diciembre 27, 2012

      Prueba a pasarle la ruta $dir completa a mano, por ejemplo $dir =”./pdf/10/” o el directorio que sepas que ya existe a ver que te hace. En principio debería de mostrar el directorio, pero si te está dando algún problema puede ser por la ruta.

      El error de que no puede mostrar el PDF no tiene mucho sentido, ya que lo único que estás pasando es un filtro de extensiones. Así que no debería de cargar el PDF.

      Saludos!

      Responder
  15. Ezan
    diciembre 3, 2018

    Como aporte. En la línea:
    if($archivo!=”.” OR $archivo!=”..”){…..}

    Se usa para evitar que liste el . y .. que referencia al directorio actual y al padre, y sólo liste documentos en el directorio. Pues bien, no es un OR sino un AND lo que hay que poner en la comparación, o siempre cumplirá la condición y seguirá mostrando el . y el ..

    Responder
    • Carlos Dk
      diciembre 3, 2018

      mmmm gracias! 🙂

      Responder

Leave A Reply Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Busca en la web

Recomiendo

Software ERP empresarial

Categorías

  • Miscelanea (129)
  • Tutoriales formativos (622)

Ponte en contacto

+34 654380491

hola@carlosdk.com

Torre del Mar (Málaga)

Enlaces rápidos

  • Universo Dk
  • Contacto
  • Blog

Soy social

  • Twitter
  • Linkedin
  • Youtube

Newsletters

Suscríbete para enterarte de lo último que estoy haciendo. No lo usaré para enviarte SPAM inútil 😉

Esta web la he diseñado con cariño en Andalucía por Carlos Dk