Foros del Web » Programando para Internet » PHP »

Recorrer directorio y solo mostrar los archivos de tipo imagen

Estas en el tema de Recorrer directorio y solo mostrar los archivos de tipo imagen en el foro de PHP en Foros del Web. hola amigos estoy buscando la manera de mostrar las imagenes de un directorio en el cual tambien hay archivos .doc,.txt...etc como puedo mostrar solo las ...
  #1 (permalink)  
Antiguo 19/04/2006, 13:12
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Recorrer directorio y solo mostrar los archivos de tipo imagen

hola amigos estoy buscando la manera de mostrar las imagenes de un directorio en el cual tambien hay archivos .doc,.txt...etc

como puedo mostrar solo las que son de tipo imagen
ya probe el filetype y nada no imprime nada con esa opcion

saludos
espero sus comentarios

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php
//definimos el path de acceso
$path = "../Thumnails/";

//abrimos el directorio
$dir = opendir($path);

//Mostramos las informaciones
while ($elemento=readdir($dir))
{

if(($elemento!='.')&&($elemento!='..'))
{
echo '<img src="'.$path.$elemento.'">'.$elemento;
echo "<br>";

}
}

//Cerramos el directorio
closedir($dir);


?>
</body>
</html>
__________________
gerardo
  #2 (permalink)  
Antiguo 19/04/2006, 13:18
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Usa las extensiones.

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php

//areglo de extensiones permitidas
$arr_exts=array("jpg","gif","png");

//definimos el path de acceso
$path "../Thumnails/";

//abrimos el directorio
$dir opendir($path);

//Mostramos las informaciones
while ($elemento=readdir($dir))
{
   
$ext=substr($elemento,-3);
   if((
$elemento!='.') && ($elemento!='..') && in_array($ext,$arr_exts))
   {
      echo 
'<img src="'.$path.$elemento.'">'.$elemento;
      echo 
"<br>";
   }
}

//Cerramos el directorio
closedir($dir);


?>
</body>
</html>
  #3 (permalink)  
Antiguo 19/04/2006, 13:32
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
gracias claudiovega

ESTA muy padre hacerlo asi como lo indicas y funciona bien,
yo trate de hacerlo sin depender de un objeto en este caso un array
donde estan las extenciones porque, luego se da la ocasion que los usuarios cambian las extenciones y queria que algun comando me dijera este archivo es de tipo : imagen/formato
segun eso lo hace el filetype('archivo.xxx'); pero no me imprime nada.

yo lo asigno asi filetype($elemento) pero no imprime nada
saludos y gracias
__________________
gerardo
  #4 (permalink)  
Antiguo 19/04/2006, 13:37
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
filetype() no te sirve, sólo te devolverá file.

Los posibles valores son fifo, char, dir, block, link, file, y unknown.
Ver: http://www.php.net/manual/es/function.filetype.php

Opciones? mime_content_type, ver: http://www.php.net/manual/es/functio...ntent-type.php
  #5 (permalink)  
Antiguo 19/04/2006, 13:42
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
je quise usar el mime_type

echo '<img src="'.$path.$elemento.'">'.$elemento;
echo "<br>";
echo mime_content_type($elemento);

pero no imprime nada en la parte de mime_content_type
y solo me imprime una imagen
que curioso

saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 19/04/2006, 13:45
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Tal vez te falta la path.

echo mime_content_type($path.$elemento);
  #7 (permalink)  
Antiguo 19/04/2006, 13:48
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
nada sigue haciendo lo mismo

hace los mismo no imprime nada y de 8 fotos solo imprime 1
__________________
gerardo
  #8 (permalink)  
Antiguo 19/04/2006, 13:51
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
por si las mocas tambien tengo habilitado el gd

Por si las mocas tambien revise que tenga activado la libreria de gd mi php
__________________
gerardo
  #9 (permalink)  
Antiguo 19/04/2006, 14:41
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Estuve probando varias cosas pero no logré nada, te dejo este link con una discusion al respecto:

http://207.150.176.83/archive/index.php?t-81945.html
  #10 (permalink)  
Antiguo 19/04/2006, 14:45
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Exclamación ok gracias

mira estoy viendo algo de esto
mime_magic.magicfile ="$PHP_INSTALL_DIR\magic.mime"
segun el php.ini se debe configurar pero en mi php.ini
no viene solo viene activar una estencion pero sobre ese parametro
no viene nada en mi php.ini

saludos
__________________
gerardo
  #11 (permalink)  
Antiguo 19/04/2006, 14:50
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Yo lo active y sólo logré un error, pero de todos modos te indico que hacer. Agrega estas lineas a tu php.ini y reinicia Apache.

[mime_magic]
mime_magic.debug = On
mime_magic.magicfile = "ruta/magic.mime"
  #12 (permalink)  
Antiguo 19/04/2006, 14:52
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Exclamación en que lugar

en que lugar las agrego o al final del archivo??'
__________________
gerardo
  #13 (permalink)  
Antiguo 19/04/2006, 14:56
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa lo puese al final del archivo de php.ini

ya corrio bien

[mime_magic]
mime_magic.debug = On
mime_magic.magicfile = "C:\php\extras\magic.mime"

y aparte active la extecion
extension=php_mime_magic.dll
__________________
gerardo
  #14 (permalink)  
Antiguo 19/04/2006, 15:06
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta ya corre bien

lo estoy probado en windows habria que ver si en linux sea igual?

Ya incluso le cambie la extencion a un archivo ah gif que originalmente es un jpg y en su parte

echo mime_content_type($path.$elemento); imprime image/jpeg
ahora en la condicion

if(($elemento!='.')&&($elemento!='..')&& in_array($ext,$arr_exts))

supongo que usando el comando explode donde encuentre imagen me muestre el archivo.

como ves?

espero sus comentarios

saludos
__________________
gerardo
  #15 (permalink)  
Antiguo 19/04/2006, 15:55
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta pues me quedo asi

no se que opinas o opinen

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php
/*
Nota loka: para poder usar el comando
mime_content_type en windows
hay que hacer lo siguiente...

1.-buscar la ruta del archivo magic.mime
que se encuentra en C:\php\extras\

2.-habilitar la extencion
extension=php_mime_magic.dll
en tu php.ini

3.-agregar estas lineas al php.ini
al final del archivo php.ini

[mime_magic]
mime_magic.debug = On
mime_magic.magicfile = "C:\php\extras\magic.mime"

*/


//arreglo de extensiones permitidas
//$arr_exts=array("jpg","gif","png");


//definimos el path de acceso
$path = "../Thumnails/";

//abrimos el directorio
$dir = opendir($path);

//Mostramos las informaciones
while ($elemento=readdir($dir))
{
//$ext=substr($elemento,-3);

//tipo de archivo
$tipo=mime_content_type($path.$elemento);
$validar=explode('/',$tipo);//imagen/formato


if(($elemento!='.')&&($elemento!='..')&&($validar[0]=='image'))
{
echo '<img src="'.$path.$elemento.'">'.$elemento;
echo "<br>";
echo mime_content_type($path.$elemento);
echo "<br>";
}
}

//Cerramos el directorio
closedir($dir);


?>
</body>
</html>
__________________
gerardo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.