Foros del Web » Programando para Internet » PHP »

Borrar imagenes y directorio

Estas en el tema de Borrar imagenes y directorio en el foro de PHP en Foros del Web. Buenas tardes a todos, mediante php cree un directorio en localhost de la siguiente manera @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $dir = "uploads/ $titulo ...
  #1 (permalink)  
Antiguo 03/01/2014, 14:02
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Borrar imagenes y directorio

Buenas tardes a todos, mediante php cree un directorio en localhost de la siguiente manera
Código PHP:
Ver original
  1. $dir = "uploads/$titulo";
  2. mkdir($dir,0777);
  3. chmod($dir,0777);
cuando intento borrar el contenido de la carpeta y el directorio desde el siguiente script
Código PHP:
Ver original
  1. foreach(glob($dir . '/*') as $file) {
  2.                 if(is_dir($file))
  3.                     rrmdir($file);
  4.                 else
  5.                     unlink($file);
  6.             }
  7.             rmdir($dir);
me aparece un error:
Warning: rmdir() expects parameter 1 to be string, array given in /Applications/XAMPP/xamppfiles/htdocs/ale/deleteWedding.php on line 36

Alguien tiene idea de que puede ser? Desde ya muchas gracias! Saludos!
  #2 (permalink)  
Antiguo 03/01/2014, 14:26
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Borrar imagenes y directorio

Veo que usas la función que aparece en la documentación de PHP (Debiste de haber pasado la función completa para no guiar mal las respuestas )

La función aparentemente esta bien, puedes mostrar el código completo?

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 03/01/2014, 15:31
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Borrar imagenes y directorio

Código PHP:
Ver original
  1. <?php
  2.        
  3.     if(isset($_GET["borrararchivo"])) // Paso el id
  4.     {
  5.        
  6.         $id = $_GET["borrararchivo"]; // Lo guardo en la variable $id
  7.        
  8.         $link = mysql_connect("localhost","root",""); // Me conecto a mysql
  9.  
  10.         if(!$link) // Si no se conecta da este error
  11.         {
  12.             die("Error al conectar a MySQL");
  13.         }
  14.  
  15.         @ $db = mysql_select_db("ale",$link); // Selecciono la base de datos
  16.  
  17.         if(!$db)  // Si no hay conexion a la base da este error
  18.         {
  19.             die("Error al seleccionar la base de datos");
  20.         }
  21.        
  22.         // La variable $ruta captura el campo RUTA de la tabla wedding
  23.         $ruta = mysql_fetch_assoc(mysql_query("SELECT ruta FROM wedding WHERE id = '$id'"));
  24.         // Borro el archivo a través del resultado de la consulta      
  25.         unlink($ruta['ruta']);
  26.        
  27.         // La variable $dir captura el campo DIR de la tabla wedding
  28.         $dir = mysql_fetch_assoc(mysql_query("SELECT dir FROM wedding WHERE id = '$id'"));
  29.         // Borro el archivo a través del resultado de la consulta
  30.         foreach(glob($dir . '/*') as $file) {
  31.                 if(is_dir($file))
  32.                     rrmdir($file);
  33.                 else
  34.                     unlink($file);
  35.             }
  36.             rmdir($dir);
  37.  
  38.          // Borro de la base el album de la base
  39.         $query = "DELETE FROM wedding WHERE id = '$id'";
  40.        
  41.          // Ejecuto la consulta
  42.         $rs = mysql_query($query,$link);
  43.        
  44.         if(!$rs)
  45.         {
  46.             die("Error al ejecutar la query de datos");
  47.         }
  48.     }
  49.     //cierro la conexion
  50.     mysql_close($link);
  51.     // Redirecciono a postear
  52.     header("location: admin.php");
Uso este script para borrar varias cosas de la base de datos y de otra carpeta, gracias x la ayuda, saludos!
  #4 (permalink)  
Antiguo 03/01/2014, 15:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Borrar imagenes y directorio

Esta linea está mal:
Código PHP:
Ver original
  1. $dir = mysql_fetch_assoc(mysql_query("SELECT dir FROM wedding WHERE id = '$id'"));

Porque ahí mysql_fetch_assoc() devuelve un array, y lo usas directamente más abajo.

Deberías usar algo así como $dir['columna_con_la_ruta'] ¿o no?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/01/2014, 17:27
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Borrar imagenes y directorio

Disculpame pateketrueke estoy iniciandome en el mundo de PHP y no soy capaz de resolverlo, aun sigo sin lograr el objetivooo, alguien que me de una mano? muchas gracias y saludos!
  #6 (permalink)  
Antiguo 07/01/2014, 08:36
Avatar de jordirmz  
Fecha de Ingreso: enero-2013
Ubicación: Catalunya
Mensajes: 14
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Borrar imagenes y directorio

¡Hola!

Lo que quiere decir pateketrueke es que la variable $dir que utilizas en el foreach es un array y por tanto tienes de definir la columna de dicho array. Es decir:

Código PHP:
Ver original
  1. foreach(glob($dir["dir"] . '/*') as $file) {
  2.                 if(is_dir($file))
  3.                     rrmdir($file);
  4.                 else
  5.                     unlink($file);
  6.             }
  7.             rmdir($dir["dir"]);

Prueba así.

Saludos.

Etiquetas: directorio, imagenes
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 15:30.