Ver Mensaje Individual
  #19 (permalink)  
Antiguo 03/09/2010, 03:40
spaindvds
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: mostar todas las fotos de un directorio con opcion de borrarlas

Oki doki aqui esta el codigo, creo que esta limpio ahora.

Probado y funcionando tanto en local como en la web.

Si habeis leido todo el post completamente sabreis que soy un Novato con PHP aunque lo use es Dreamweaver quien me genera mas o menos todo lo que necesito, no en este caso, no se si dreamweaver puede hacer algo asi solo clickeando con el raton y dandole las rutas.

La explicacion y codigo de lo que he hecho, Dos paginas:

1ª Pagina "proceso-eliminar-foto.php" Muestra todas las imagenes de una carpeta especifica "carpeta-1", esta pagina muestra todas las imagenes, cada imagen en una fila y cada fila con tres celdas, la primera celda muestra la imagen a un tamaño de 200x200, la segunda el nombre del archivo de imagen y la tercera un link borrar (se puede cambiar por un boton, imagen, etc) y el codigo es el siguiente:

<?php
echo "<h1>CARPETA DE FOTOS 1</h1>";
echo "<table width=100% border=1 cellspacing=2 cellpadding=2><tr align=center><td>IMAGEN</td><td>NOMBRE DE IMAGEN</td><td>BORRAR</td></tr>";
filesInDir('carpeta-1'); /* ruta de la carpeta de donde se sacaran los archivos*/
function filesInDir($tdir)
{
$dirs = scandir($tdir);
foreach($dirs as $file)
{
if (($file == '.')||($file == '..'))
{
}
elseif (is_dir($tdir.'/'.$file))
{
filesInDir($tdir.'/'.$file);
}
else
{
echo "<tr>
<td><img src=carpeta-1/$file width=200 height=200 /></td>
<td><b>$file</b></td>
<td><a href='proceso-eliminar-foto.php?files=carpeta-1/$file'>eliminar</a> </td>
</tr>";
}
}
}
echo "</table>";
?>

2ª Pagina "proceso-eliminar-foto.php" esta pagina como el nombre indica procesa la orden de borrado y te devuelve a la pagina anterior. el codigo es el siguiente:

<?
$dir=$_GET['files'];
if(file_exists($dir))
{
if(unlink($dir));
$deleteGoTo = "editar-fotos-carpeta-1.php"; //cargara la siguiente pag. despues de eliminar
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}
?>
No has seleccionado una foto para borrar blablabla.... <a href="editar-fotos-carpeta-1.php">Vuelve atras</a>



Si alguien ve o encuentra un fallo o algo por favor decirlo pues este codigo probablemente ayude a mas personas en el futuro, Gracias.

Como podeis ver son solo unas cuantas lineas y muy facil de entender y lo he dejado lo mas sencillo que he podido ahora tu le puedes aplicar tus estilos y adaptar a tu web al igual que lo voy a hacer yo cuando termine de escribir este post.

Sobre seguridad debo decir que se la tendras que implementar tu y que no debe dejarse tal cual en la web o corres el riesgo de que te borren todos los archivos que contenga esa carpeta y si no me equivoco con un poco de ingenio creo que se podria borrar de otras carpetas tambien, asi que agregale seguridad al script.

Otra cosa es que yo lo he hecho especificamente para carpetas que solo contienen fotos pero creo que te mostraria todos los archivos que contenga la carpeta (claro que la celda que muestra las imagenes dara error) pero no lo he provado ni tengo interes de momento en probarlo.

Bueno pues nada mas si alguien piensa que esta mal o puede aportar mas ayuda que lo haga no solo yo estare agradecido, mas gente pasara por aqui seguro.