Foros del Web » Programando para Internet » PHP »

unlink

Estas en el tema de unlink en el foro de PHP en Foros del Web. este es el codigo que utilizo.. pero al llegar al unlink me sale este error: Warning: unlink() failed (Is a directory) in /home/pagina/public_html/archivos/mpais.php on line ...
  #1 (permalink)  
Antiguo 04/03/2003, 19:35
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
unlink

este es el codigo que utilizo.. pero al llegar al unlink me sale este error:

Warning: unlink() failed (Is a directory) in /home/pagina/public_html/archivos/mpais.php on line 138

y el codigo es este:

$path = "/home/pagina/public_html/archivos/img";
$dir = opendir($path);
$archivo_name = $banp; //bnp es la variable que contiene el nombre de la imagen que deseo borrar... while($arch = readdir($dir))
$directorio[count($directorio)] = $arch;
$fichero = $path . "/" . $archivo_name;
unlink($fichero);
closedir($dir);

ahora no estoy muy segura que este bien...

Saludos
  #2 (permalink)  
Antiguo 04/03/2003, 19:38
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
No sera que el nombre del archivo lo esta interpretando sin extension??

miarchivo en lugar de miarchivo.txt

Porque tal vez por eso lo interpreta como directorio, revisa que tu variable traiga el nombre completo del archivo.

Saludos
__________________
Manoloweb
  #3 (permalink)  
Antiguo 04/03/2003, 19:46
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: unlink

Cita:
Mensaje Original por Salome
este es el codigo que utilizo.. pero al llegar al unlink me sale este error:

Warning: unlink() failed (Is a directory) in /home/pagina/public_html/archivos/mpais.php on line 138

y el codigo es este:

$path = "/home/pagina/public_html/archivos/img";
$dir = opendir($path);
$archivo_name = $banp; //bnp es la variable que contiene el nombre de la imagen que deseo borrar... while($arch = readdir($dir))
$directorio[count($directorio)] = $arch;
$fichero = $path . "/" . $archivo_name;
unlink($fichero);
closedir($dir);

ahora no estoy muy segura que este bien...

Saludos
el problema, según veo aquí es q la variable q contiene el nombre del fichero, es $arch. y tu le dices $archivo_name, aparte, el readdir, te está leyendo "." y "..", q son directorios.
(no entiendo muy bien el pq haces el readdir si ya sabes el nombre del archivo q kieres borrar, pero bueno).

prueba algo asi:

$ruta="/home/pagina/tal";
$dir=opendir($ruta);
while ($leido=readdir($dir)) {
if ($leido!="." && $leido!="..") {
$rutafichero=$ruta.$leido;
unlink($fichero);
}
}
closedir($dir);


lo acabo de hacer aki, osea, q puede tener fallos...
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
  #4 (permalink)  
Antiguo 04/03/2003, 22:19
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1


Ahora si me funciona.. gracias!!!

asi quedo la parte de eliminar el archivo

$ruta="/home/pagina/public_html/archivos/img/";
$dir=opendir($ruta);
$leido = $banp;
while ($leido=readdir($dir))
{
if ($leido!="." && $leido!="..")
{
$fichero = $ruta.$leido;
unlink($fichero);
}
}
closedir($dir);

Gracias Neburos..

Ahh con respecto a si guardaba bien el nombre del archivo con la extencion si.. pues este lo traigo desde un campo en la base de datos donde ha sido guardado con anterioridad y tiene la extensión.
  #5 (permalink)  
Antiguo 04/03/2003, 22:42
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
hable demasiado rapido...

me borra todos los archivos del directorio img.. no el que supuestamente esta como $leido...

  #6 (permalink)  
Antiguo 04/03/2003, 23:26
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Lo que estas haciendo es recorrer el directorio y borrando todo lo que encontras (que novedad!). Te fafta una condicion que compare $banp con cada archivo del directorio, o sea $leido.

Quedaria algo asi...
Código PHP:
<?php
$ruta
="/home/pagina/public_html/archivos/img/";
$dir=opendir($ruta);
while (
$leido=readdir($dir)) {
    if (
$leido!="." && $leido!=".." && $banp == $leido) {
        
$fichero $ruta.$leido;
        
unlink($fichero);
    }
}
closedir($dir);
?>
Saludos.
  #7 (permalink)  
Antiguo 05/03/2003, 11:22
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
listo.. ahora si me funciona!!

Gracias a todos...

asi quedo el codigo...

$ruta="/home/pagina/public_html/archivos/img/";
$dir=opendir($ruta);
while ($leido=readdir($dir))
{
if ($leido!="." && $leido!=".." && $banp == $leido)
{
$fichero = $ruta.$leido;
unlink($fichero);
}
}
closedir($dir);

:cantar:
  #8 (permalink)  
Antiguo 13/01/2004, 11:23
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola, esta parte del codigo esta muy bien pero que pasa si la variable que dice el nombre del archivo en mi caso $imagen que me viene de una consulta a la bd me trae la ruta al archivo en mi caso imagenes/archivo.jpg que es igual a la variable con la que trabajo $imagen .
¿donde pones la variable $ruta= tendria que poner directamente la variable que me trae mi consulta? $imagen

gracias.

Código PHP:
<?php
$ruta
=($imagen);
$dir=opendir($ruta);
while (
$leido=readdir($dir)) {
    if (
$leido!="." && $leido!=".." && $banp == $leido) {
        
$fichero $ruta.$leido;
        
unlink($fichero);
    }
}
closedir($dir);
?>
Saludos. [/B][/QUOTE]
  #9 (permalink)  
Antiguo 13/01/2004, 14:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
midpunto ..

No sería mejor que preguntases tu problema en un nuevo mensaje?

Por mi parte .. en otro mensaje ya te he comentado el tema de las rutas absolutas con: $_SERVER['DOCUMENT_ROOT']

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 15/01/2004, 13:09
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
De acuerdo encontre la solucion...

Al final no era tan complicado y para hacer unlink directamente le pongo la variable que me trae la ruta y listo igual mente gracias....

<?
HTTP_GET_VARS['imagen'];
if (unlink($imagen)){
echo su $imagen ha sido borrada;
}else{
echo su $imagen no se pudo borrar;
}
?>
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:35.