Foros del Web » Programando para Internet » PHP »

Eliminar archivos de directorio

Estas en el tema de Eliminar archivos de directorio en el foro de PHP en Foros del Web. Hola gente, quería saber si me podían ayudar porfas, ya que estoy con PHP y no se mucho :S Investigué toda una semana en Google ...
  #1 (permalink)  
Antiguo 17/08/2007, 17:37
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Exclamación Eliminar archivos de directorio

Hola gente, quería saber si me podían ayudar porfas, ya que estoy con PHP y no se mucho :S

Investigué toda una semana en Google pero no logro saber como hacer.
Mi problema es que tengo un sistema, el cual envio las imagenes y se guardan en un directorio. En la página principal lo que hago es mostrar todas las imagenes en esa carpeta. Mi problema es que no se como hacer para tener la opcion de elegir que imagen eliminar. No se como hacer porque no esta hecha con base de datos


Me pueden ayudar???

desde ya gracias
  #2 (permalink)  
Antiguo 17/08/2007, 20:05
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Re: Eliminar archivos de directorio

oye, si ya entindes el código que te permite usar/guardar las imágenes en el Servidor solo es que empieces entendiendo la utilización de la función unlink(), ahora si no, lee tu código, trata de entenderlo, postealo y lo analizamos.

un saludo.
__________________
http://dev.wsnetcorp.com
  #3 (permalink)  
Antiguo 17/08/2007, 21:32
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Eliminar archivos de directorio

Hola ebe como andas?

Bueno mirá te dejo acá el código...


admin_ocacion.php - Este archivo es para subir las imagenes al directorio
Código PHP:
if(admin()){
echo
"<table width=\"100%\" border=\"0\"><tr><td width=\"70%\"><b>Solo se admiten archivo con formato JPG. Su tamaño debe ser de 400x300 pixeles. Además el nombre no debe contener ni ESPACIO, ni simbolos.</b></td><td width=\"30%\"><div align=\"right\"><img src=\"../imagenes/aviso.jpg\"></div></td></tr></table><br><br><form action=\"admin_ocacion.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"form1\">
  <p align=\"center\">Archivo
   <input name=\"archivo\" type=\"file\" id=\"archivo\">
  </p>
  <p align=\"center\"><input name=\"boton\" type=\"submit\" id=\"boton\" value=\"Enviar\"></p>
</form>"
;
if(
$boton) {
   if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
       if(
$HTTP_POST_FILES['archivo']['type']=="image/jpeg") {
           
copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
           
$subio true;
   }
}

   if(
$subio) {
      echo 
"El archivo se envió correctamente. <a href=\"../admin_menu.php\">Volver</a>";
   } else {
      echo 
"El archivo no se pudo enviar. Recuerda que debe ser un archivo JPG y su tamaño no debe ser demaciado grande.";
   }
   die();
}
} else {
echo
"Esta seccion es solo para administradores !";

Lo de if(admin) es para decir que si esta logueado muestra eso, sino que te diga que "esta pagina es solo para administradores.


index.php - Es la página principal donde se muestran las imagenes
Código PHP:
<?
$carpeta 
'ocaciones/';
$contenido opendir("$carpeta");
$archivo=readdir($contenido);
$archivo=readdir($contenido);
?>

<? while ($archivo=readdir($contenido)) { ?>
<img src="resize.php?img=<?php echo $carpeta.$archivo?>" border="0"><br><br><br></td>
<?
}
closedir($contenido);?>
resize.php - Donde se configura el tamaño, tipo, etc. de la imagen
Código PHP:
if (!isset($w)) 
    { 
    
$w 400
    } 

if (!isset(
$h)) 
    { 
    
$h 300
    } 


SetType($modo,   'integer'); 
SetType($w,      'integer'); 
SetType($h,     'integer'); 
SetType($img,     'string' ); 

function 
percent($p$w
    { 
    return (real)(
100 * ($p $w)); 
    } 

function 
unpercent($percent$whole
    { 
    return (real)((
$percent $whole) / 100); 
    } 

$Prop 'w';
if (isset(
$Pwh)){
    
$Prop $Pwh;
}

$CalidadJPG 80;

$type 'jpg';

if (!
file_exists($img)) 
    { 
    echo 
"Error: No se puede encontrar la imagen: $img."
    exit(); 
    } 

$tmp imagecreatefromjpeg($img);     

if (
$tmp
    { 

$ow  imagesx ($tmp);    
$oh  imagesy ($tmp);   

if (
$modo
    { 
        
$nw $w
        
$nh $h
    } 
    else 
    { 
        if (
$Prop == 'w'
            { 
            
$nw  $w
            
$nh unpercent(percent($nw$ow), $oh);          
            } 
        else if (
$Prop == 'h'
            { 
            
$nh $h
            
$nw unpercent(percent($nh$oh), $ow); 
            } 
        else 
            { 
            
$nh $h
            
$oh $w
            } 
    } 

    
$out imagecreatetruecolor($nw$nh); 
    
imagecopyresampled($out$tmp0000$nw$nh$ow$oh);
    
imagedestroy($tmp); 
    } 
else 
    { 
    echo 
'ERROR: No se pudo crear la imagen fuente.'
    exit; 
    } 


if (
$out
    { 
    
header('Content-type: image/jpeg'); 
    
imagejpeg($out,'',$CalidadJPG); 
    
imagedestroy($out); 
    } 
else 
    { 
    echo 
'ERROR: No se pudo crear la imagen redimensionada.'
    } 

Bueno por ahora es simple, con el archivo admin_ocacion.php subo las imagenes al directorio y en el index.php muestra todas las imagenes.

La cosa es que quiero hacer un simple archivo php donde muestre las imagenes que tengo en el directorio y que me de la opción para borrar cada una de las imagenes, no todas juntas, sino la que yo quiero. Unlink se para que sirve, pero no se como hacer para elegir que imagen eliminar.

Desde ya gracias
  #4 (permalink)  
Antiguo 17/08/2007, 22:35
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Re: Eliminar archivos de directorio

un consejo rápido con este código agrega algo así:

Código PHP:
<? while ($archivo=readdir($contenido)) { ?>
<img src="resize.php?img=<?php echo $carpeta.$archivo?>" /> - <a href="del_image.php?image=<?php echo $carpeta.$archivo?>">delete image</a><br><br><br></td>
<?
}
luego crea un archivo que se llame del_image.php donde haces uso de esa variable &_GET para hacer el llamado a tu funcion unlink(), ya tienes la ruta, solo es que le entres al archivo del_image.php y pruebes tu función unlink().

PD: se que puedes sacar algo mejor de esto, además usa $_FILES en ves de $HTTP_POST_FILES.

un saludo.

ebe
__________________
http://dev.wsnetcorp.com
  #5 (permalink)  
Antiguo 18/08/2007, 11:55
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Eliminar archivos de directorio

Gracias che, pero eso de "del_image.php" no me funciona, fijate lo hice así :S:S

Código PHP:
if(admin()){

if(
$boton) {
   if (
unlink('archivo')) {
           
$elimino true;
}

   if(
$elimino) {
      echo 
"El archivo se eliminó correctamente. <a href=\"../admin_ocacion_eliminar.php\">Volver</a> - <a href=\"../admin_menu.php\">Volver al Panel de Control</a>";
   } else {
      echo 
"El archivo no se pudo enviar. Recuerda que debe ser un archivo JPG y su tamaño no debe ser demaciado grande.";
   }
   die();
}

} else {
echo
"Esta seccion es solo para administradores !";

Gracias.
  #6 (permalink)  
Antiguo 20/08/2007, 19:39
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Eliminar archivos de directorio

Por favor que alguien me ayude, no logro encontrar solucion :(
  #7 (permalink)  
Antiguo 20/08/2007, 19:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Eliminar archivos de directorio

Cambia:
Código PHP:
unlink'archivo' ); 
Por la variable que contenga la ruta a la imagen que quieras eliminar.

Saludos.
  #8 (permalink)  
Antiguo 25/08/2007, 12:27
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Eliminar archivos de directorio

unlink( 'archivo' ); tienes que cambiarlo por

unlink( $_GET['image']);

con es deberia de trabajarte bien.
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 02:11.