Foros del Web » Programando para Internet » PHP »

ayuda unlink

Estas en el tema de ayuda unlink en el foro de PHP en Foros del Web. Buenas , esta función ya hace tiempo que me dio quebraderos de cabeza; el tema es que quiero borrar archivos que estan en una ruta ...
  #1 (permalink)  
Antiguo 30/03/2009, 10:13
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
ayuda unlink

Buenas , esta función ya hace tiempo que me dio quebraderos de cabeza; el tema es que quiero borrar archivos que estan en una ruta por encima del script que los borra es decir:

angro/admin/script_borrador.php
angro/uploads/archivo.jpg

(Pongo todo esto porque quizás algo se me escape).

El tema es que he intentado borrarlo de varias formas; promero así

unlink('/home/rpepe/public_html/angro/uploads/7983920.jpg')
y me tira este error
Warning: unlink(/home/rpepe/public_html/angro/uploads/7983920.jpg) [function.unlink]: No such file or directory in /home/rpepe/public_html/angro/fns/logic_fns.php on line 759

Y luego de esta forma
unlink('../uploads/7983920.jpg')

En ambas me tira error .
¿Como puedo borrar este archivo?. He mirado ya en php.net pero sigo sin enterarme del todo.

Un saludo y gracias de antemano a tod@s.

Última edición por Dundee; 30/03/2009 a las 10:15 Razón: matizar
  #2 (permalink)  
Antiguo 30/03/2009, 10:16
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ayuda unlink

Sacado de los comentarios de la funcion unlink()

Cita:
To anyone who's had a problem with the permissions denied error, it's sometimes caused when you try to delete a file that's in a folder higher in the hierarchy to your working directory (i.e. when trying to delete a path that starts with "../").

So to work around this problem, you can use chdir() to change the working directory to the folder where the file you want to unlink is located.

<?php
$old = getcwd(); // Save the current directory
chdir($path_to_file);
unlink($filename);
chdir($old); // Restore the old working directory
?>
Cita:
I have founda that trying to delete a file using relative path like the example below does not work.

<?php
$do = unlink("../pics/$fileToDel");
if($do=="1"){
echo "The file was deleted successfully.";
} else { echo "There was an error trying to delete the file."; }
?>

I did not work at all, instead what I had to do was:

<?php
chdir('../pics/');
$do = unlink($fileToDel);
if($do=="1"){
echo "The file was deleted successfully.";
} else { echo "There was an error trying to delete the file."; }
?>

Then it worked !
  #3 (permalink)  
Antiguo 30/03/2009, 12:37
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: ayuda unlink

Hola , gracias por tu ayuda , he hecho lo que me has dicho pero sigo sin poder borrar.


//$images contiene un array con las imágenes para borrar
//$path es la ruta donde están las imágenes "../uploads"

function borrar_add($Images,$path) {
/*
//las imágenes están separadas por _ (guines bajos)
$imgs=explode("_",$Images);
for ($i=0;$i<count($imgs);$i++) {

if ($imgs[$i]!="_") {
$old = getcwd();
// Save the current directory

chdir($path);
if ( !unlink($imgs[$i]) )
return 0;
}}
chdir($old); // Restore the old working directory

return true;
}

El error que me tira es este.
Warning: unlink(8962480.png) [function.unlink]: No such file or directory in /home/rafita/public_html/anarosa/fns/logic_fns.php on line 763

He probado a cambiar la ruta de path (por si estaba mal) y si hago esto me tira otro error que me dice que no encuentra la ruta (logicamente al no ponerla bien).

Un saludo
  #4 (permalink)  
Antiguo 30/03/2009, 12:39
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ayuda unlink

Bueno, pues el error te esta diciendo que el archivo o carpeta no existe. Revisa bien tus rutas.
No conozco la jerarquia de tus archivos por lo cual no puedo ayudarte mas a fondo.
  #5 (permalink)  
Antiguo 30/03/2009, 12:43
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: ayuda unlink

Cita:
Iniciado por Ronruby Ver Mensaje
Bueno, pues el error te esta diciendo que el archivo o carpeta no existe. Revisa bien tus rutas.
No conozco la jerarquia de tus archivos por lo cual no puedo ayudarte mas a fondo.
Hola de nuevo , no creo que sea eso porque he revisado la ruta varias veces y además cuando la he puesto mal a propósito me a tirado este otro error:

Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /home/gghuy/public_html/anarosa/fns/logic_fns.php on line 762

La ruta es solo un directorio por encima , es decir
admin/sciptQueborra.php
uploads/imagen.jpg
¿no está bien como path " ../ " ?

un saludo
  #6 (permalink)  
Antiguo 30/03/2009, 13:44
 
Fecha de Ingreso: mayo-2005
Mensajes: 45
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: ayuda unlink

¿Has probado a hacer como en el comentario de php.net?:
<?php
chdir(''../uploads/');
unlink('7983920.jpg');
?>
Porque según parece debe haber un bug en algunas versiones con directorios por encima... otra cosa no se me ocurre que puede estar pasando
  #7 (permalink)  
Antiguo 30/03/2009, 16:26
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: ayuda unlink

la ruta esta mala.
Código PHP:
/home/rpepe/public_html/angro/uploads/7983920.jpg 
el navegador ve desde public_html en adelante, por lo que de seguro, debes poner algo asi:

Código PHP:
angro/uploads/7983920.jpg 
ahi te va a pescar.

haz una prueba. pon
Código PHP:
echo "<img src='angro/uploads/7983920.jpg' /> \n";
echo 
"Foto NN"
Si se te ve la foto, tonses la ruta está bien ahora.

Silla!
  #8 (permalink)  
Antiguo 31/03/2009, 14:05
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: ayuda unlink

Perdón pero tenía una error de sintaxis independientemente de eso , lo he hecho como me dijo Ronruby y funciona perfectamente.
Un saludo y mil gracias a tod@s
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 07:38.