Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error al eliminar imagen con unlink()

Estas en el tema de Error al eliminar imagen con unlink() en el foro de PHP en Foros del Web. Muy buenas Estoy intentando eliminar una imagen de mi localhost, y me salta este problema. Código: Warning: unlink(avatar/) [ function.unlink ]: Permission denied in C:\AppServ\www\test\atach.php ...
  #1 (permalink)  
Antiguo 27/07/2015, 10:48
Avatar de zutzu  
Fecha de Ingreso: mayo-2010
Ubicación: Lima
Mensajes: 44
Antigüedad: 13 años, 11 meses
Puntos: 2
Pregunta Error al eliminar imagen con unlink()

Muy buenas

Estoy intentando eliminar una imagen de mi localhost, y me salta este problema.
Código:
Warning:  unlink(avatar/) [function.unlink]: Permission denied in C:\AppServ\www\test\atach.php on line 26
Y este es el codigo:
Código PHP:
       $urlImagen $_SESSION['avatar'];
       
$separar explode('avatar/',$urlImagen); 
       
$image $separar[1];
       
$deleteImage 'avatar/'.$image;
       
       
unlink($deleteImage); 
Lo extraño (al menos para mi que no se mucho de php), es que si cambio la variable $image, por un string comun, por ejemplo, si cambio esto:
Código PHP:
$image $separar[1]; 
Por esto:
Código PHP:
$image 'avatar oso.png'
el unlink(); me funciona de forma correcta y elimina la imagen, sin votar algun error de permisos.
-----------
Tambien quise comprabar si el codigo php estaba bien o habia algun error en el explode, pero al imprimir $deleteImage, sin usar unlink(); me imprime de forma correcta lo que quiero, en este caso la ruta del avatar usuado por el usuario logeado actualmente.
-----------
A ver si me dan una ayuda, muchas gracias de antemano
  #2 (permalink)  
Antiguo 27/07/2015, 11:45
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: Error al eliminar imagen con unlink()

¿Has probado de cambiar los permisos de la imagen antes de borrarla?

Código PHP:
Ver original
  1. <?php
  2. chmod("/somedir/somefile.jpg", 777);
  3. unlink("/somedir/somefile.jpg");  
  4. ?>
http://php.net/manual/en/function.chmod.php
  #3 (permalink)  
Antiguo 27/07/2015, 11:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error al eliminar imagen con unlink()

¿Sabes lo que hace la función explode() o no?

En teoría, si la variable $urlImagen contiene el texto "avatar/" tratará de cortar dicho texto en varias partes, y así tomar el segundo segmento $separar[1] y así.

Si dicha cadena no tiene "avatar/" entonces $separar[1] no devolverá nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 27/07/2015, 19:26
Avatar de zutzu  
Fecha de Ingreso: mayo-2010
Ubicación: Lima
Mensajes: 44
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Error al eliminar imagen con unlink()

Muchas gracias por las respuestas, fue error mio, tenia unas variables anteriores que me cambiaban los datos.

Pero revisando, creo que no hacia falta poner tanto codigo, al final lo deje asi:
Código PHP:
       $urlImagen $_SESSION['avatar'];
       if(
file_exists($urlImagen)){
           
unlink($urlImagen);
              echo 
$urlImagen'Imagen eliminada'
       }
       else { echo 
$urlImagen'Image no existe'; } 
Cita:
¿Sabes lo que hace la función explode() o no?

En teoría, si la variable $urlImagen contiene el texto "avatar/" tratará de cortar dicho texto en varias partes, y así tomar el segundo segmento $separar[1] y así.

Si dicha cadena no tiene "avatar/" entonces $separar[1] no devolverá nada.
mas o menos, lo que yo queria era separar el nombre de la imagen con la carpeta que lo contiene, ya que :

Código PHP:
$_SESSION['avatar'
Contenia la direccion del avatar que es:
Código:
avatar/mono.png
Código PHP:
$urlImagen $_SESSION['avatar'];
$separar explode('avatar/',$urlImagen); 
$image $separar[1]; 
Por eso use esa expresion con el explode(), que justamente me dio lo que queria, en este caso, solo el nombre del avatar osea mono.png excluyendo el texto 'avatar/'

Si no se usa asi, ps que raro que a mi me funcione.

Igualmente muchas gracias por el interes, ya esta solucionado, hasta pronto!

Etiquetas: variable
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 21:29.