Foros del Web » Programando para Internet » PHP »

Dividir imagenes y archivos

Estas en el tema de Dividir imagenes y archivos en el foro de PHP en Foros del Web. Hola que tal amigos del foro, tengo el siguiente codigo que me muestra todos los archivos de un directorio ya sean imagenes o documentos Código ...
  #1 (permalink)  
Antiguo 19/09/2011, 11:44
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Dividir imagenes y archivos

Hola que tal amigos del foro, tengo el siguiente codigo que me muestra todos los archivos de un directorio ya sean imagenes o documentos

Código PHP:
<?


 $path
="../imagenes/museo/noticias/2011Sep15_patronato_4e721fb009a45/";


 
$directorio=dir($path);





 echo 
"Directorio ".$path.":<br><br>";





 while (
$archivo $directorio->read())


 {


     echo 
$archivo."<br>";


 }


 
$directorio->close();


 
?>

Ahora lo que quiero hacer es separar las images(jpg, jpeg, png, etc) y los archivos(doc, xls, pdf, etc), como podria ahacer esto gracias por su ayuda
  #2 (permalink)  
Antiguo 19/09/2011, 12:47
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Dividir imagenes y archivos

En estos casos me parece que es muy útil la clase DirectoryIterator. Un ejemplo:

Código PHP:
Ver original
  1. <?php
  2. $directorio = dirname(__FILE__); //Tu directorio aquí.
  3. $imagenes = array();
  4. $documentos = array();
  5. $otros = array();
  6.  
  7. //Extensiones permitidas
  8. $imgs = array('jpg', 'jpeg', 'png', 'gif');
  9. $docs = array('doc', 'docx', 'pdf', 'xls', 'xml', 'php', 'txt');
  10.  
  11. $ite = new DirectoryIterator($directorio);
  12.  
  13. echo '<h3>Directorio: ' . $directorio . '</h3>';
  14.  
  15. foreach ($ite as $fi) {
  16.     if (!$fi->isDot()) {
  17.         if (in_array($fi->getExtension(), $imgs)) {
  18.             $imagenes[] = $fi->getFilename();
  19.         } else if (in_array($fi->getExtension(), $docs)) {
  20.             $documentos[] = $fi->getFilename();
  21.         } else {
  22.             $otros[] = $fi->getFilename();
  23.         }
  24.     }
  25. }
  26.  
  27. echo 'Imagenes: ' . implode(', ', $imagenes) . '<br />';
  28. echo 'Documentos: ' . implode(', ', $documentos) . '<br />';
  29. echo 'Otros: ' . implode(', ', $otros) . '<br />';
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 19/09/2011, 14:08
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Dividir imagenes y archivos

Gracias andresdzphp pero ya puse el codigo que pusiste y no pasa nada

aqui te dejo el codigo completo y ojala y me puedas ayudar

Cita:
<?php
$directorio = dirname(__FILE__)."../imagenes/museo/noticias/2011Sep15_patronato_4e721fb009a45/"; //Tu directorio aquí.
$imagenes = array();
$documentos = array();
$otros = array();
//Extensiones permitidas
$imgs = array('jpg', 'jpeg', 'png', 'gif');
$docs = array('doc', 'docx', 'pdf', 'xls', 'xml', 'php', 'txt');
$ite = new DirectoryIterator($directorio);
echo '<h3>Directorio: ' . $directorio . '</h3>';
foreach ($ite as $fi) {
if (!$fi->isDot()) {
if (in_array($fi->getExtension(), $imgs)) {
$imagenes[] = $fi->getFilename();
} else if (in_array($fi->getExtension(), $docs)) {
$documentos[] = $fi->getFilename();
} else {
$otros[] = $fi->getFilename();
}
}
}
echo 'Imagenes: ' . implode(', ', $imagenes) . '<br />';
echo 'Documentos: ' . implode(', ', $documentos) . '<br />';
echo 'Otros: ' . implode(', ', $otros) . '<br />';
?>
  #4 (permalink)  
Antiguo 19/09/2011, 14:15
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Dividir imagenes y archivos

Tienes que colocar la ruta del directorio correctamente, intenta así:

Código PHP:
Ver original
  1. $directorio = "../imagenes/museo/noticias/2011Sep15_patronato_4e721fb009a45/";

y necesitas PHP 5+

saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 19/09/2011, 14:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Dividir imagenes y archivos

No tampoco sirvio, solamente me imprime en pantalla el directorio
  #6 (permalink)  
Antiguo 19/09/2011, 14:27
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Dividir imagenes y archivos

Dudo ya que sea la ruta, creo que no tienes esa clase en donde lo estés probando. Con el código que tienes incialmente, puedes sacar la extensión con explode o cualquier otra función y aplicarlo.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 19/09/2011 a las 14:34
  #7 (permalink)  
Antiguo 19/09/2011, 14:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Dividir imagenes y archivos

ahora no me imprime nada, ya revise la version de php y tengo la 5.1.6
  #8 (permalink)  
Antiguo 19/09/2011, 14:45
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Dividir imagenes y archivos

Bueno no nos vamos a complicar, esta es la forma con tu código inicial. Lastima que no te funcione la clase, porque es muy útil. Trata de copiar los códigos directamente no le des en ver original, porque veo que te están saliendo asteriscos fantasmas, usados para la tabulación del código en el foro. (prueba los 2 códigos con esta recomendación). Saludos

Código PHP:
Ver original
  1. <?php
  2. $path = "../imagenes/museo/noticias/2011Sep15_patronato_4e721fb009a45/";
  3. $directorio = dir($path);
  4.  
  5. $imagenes = array();
  6. $documentos = array();
  7. $otros = array();
  8.  
  9. //Extensiones permitidas
  10. $imgs = array('jpg', 'jpeg', 'png', 'gif');
  11. $docs = array('doc', 'docx', 'pdf', 'xls', 'xml', 'php', 'txt');
  12.  
  13. echo "Directorio " . $path . ":<br><br>";
  14.  
  15. while ($archivo = $directorio->read()) {
  16.     if ($archivo != '.' && $archivo != '..' && !is_dir($archivo)) {
  17.         $ext=explode(".",$archivo);
  18.         $num=count($ext)-1;
  19.         if (in_array($ext[$num], $imgs)) {
  20.             $imagenes[] = $archivo;
  21.         } else if (in_array($ext[$num], $docs)) {
  22.             $documentos[] = $archivo;
  23.         } else {
  24.             $otros[] = $archivo;
  25.         }
  26.     }
  27. }
  28.  
  29. $directorio->close();
  30.  
  31. echo 'Imagenes: ' . implode(', ', $imagenes) . '<br />';
  32. echo 'Documentos: ' . implode(', ', $documentos) . '<br />';
  33. echo 'Otros: ' . implode(', ', $otros) . '<br />';

PD: Los 2 códigos fueron probados por mí en PHP 5.3.8
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 19/09/2011, 14:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Dividir imagenes y archivos

Gracias ya quedo listo, tratare de probarlo con la clase

Etiquetas: dividir, imagenes
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 14:56.