Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

problema con el rmdir

Estas en el tema de problema con el rmdir en el foro de Sistemas de gestión de contenidos en Foros del Web. Bueno, mi problema lo veo muy extraño, estoy retocando una galeria para phpbb la cual guarda todas las imagenes en una única carpeta y yo ...
  #1 (permalink)  
Antiguo 02/06/2008, 10:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
problema con el rmdir

Bueno, mi problema lo veo muy extraño, estoy retocando una galeria para phpbb la cual guarda todas las imagenes en una única carpeta y yo querria que las guardara en diferentes carpetas, he retocado que cuando cree una galeria me cree la carpeta dentro de la de defecto, hasta ahi perfecto por que me lo hace sin problema alguno y las crea dentro de carpetas ya creadas haciendo el arbol:
Código:
$seguiment = $album_data['parent_id'];
			$total = $album_data['album_name'];
			
			
			if ($album_data['parent_id'] != 0){
				while ($seguiment != 0){			
					$sql = 'SELECT parent_id, album_name FROM '. GALLERY_ALBUMS_TABLE . ' WHERE album_id = ' . $seguiment;
					$result = $db->sql_query($sql);
					$resultat = $db->sql_fetchrow($result);
					$db->sql_freeresult($result);
					$total = $resultat['album_name'] . '/' . $total;
					$seguiment = $resultat ['parent_id'];
				}
			}
			mkdir($phpbb_root_path . GALLERY_ROOT_PATH . 'upload/' . $total, 0777);
Ahora queria retocar la funcion que borra los albumes para que me borre las carpetas creadas y su contenido entonces claro, lo que hice fue exactamente el mismo script que el de arriba pero quitando el mkdir y la asignacion de propiedad (777) y me dice que no existe el directorio, no entiendo por que,he revisado que por casualidad no haga algo mal pero el directorio si es el correcto, alguna idea de que podria ser?
  #2 (permalink)  
Antiguo 02/06/2008, 10:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 12 años, 7 meses
Puntos: 2534
Respuesta: problema con el rmdir

haber haber.... decidete primero..... es mkdir o rmdir el problema???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/06/2008, 11:18
(Desactivado)
 
Fecha de Ingreso: mayo-2008
Mensajes: 85
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problema con el rmdir

con rmdir solo eliminas el directorio, para eliminar tambien el contenido toma esta funcion:


function fs_rmdir($d)
{
$h = opendir($d);
while (($o = readdir($h)) !== FALSE)
{
if (($o != ".") and ($o != ".."))
{
if (!is_dir($d.$o)) {unlink($d.$o);}
else {fs_rmdir($d.$o.DIRECTORY_SEPARATOR); rmdir($d.$o);}
}
}
closedir($h);
rmdir($d);
return !is_dir($d);
}



function fs_rmobj($o)
{
$o = str_replace("\\",DIRECTORY_SEPARATOR,$o);
if (is_dir($o))
{
if (substr($o,-1) != DIRECTORY_SEPARATOR) {$o .= DIRECTORY_SEPARATOR;}
return fs_rmdir($o);
}
elseif (is_file($o)) {return unlink($o);}
else {return FALSE;}
}
  #4 (permalink)  
Antiguo 02/06/2008, 11:28
 
Fecha de Ingreso: septiembre-2005
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problema con el rmdir

Vuelvo a explicarme, el codigo que os he pegado es el de mkdir, el de creacion del directorio, ahora me falta el de borrar el directorio, tengo hehco un recursive_rmdir, ahora os pego el codigo para la eliminacion del directorio.
Código:
$sql = 'SELECT *
					FROM ' . GALLERY_ALBUMS_TABLE . '
					WHERE album_id = ' . $album_id;
				$result = $db->sql_query($sql);
				$resultado = $db->sql_fetchrow($result);
				$db->sql_freeresult($result);
			
				$seguiment = $resultado['parent_id'];
				$total = $resultado['album_name'];
				if ($resultado['parent_id'] != 0){
					while ($seguiment != 0){			
						$sql = 'SELECT parent_id, album_name FROM '. GALLERY_ALBUMS_TABLE . ' WHERE album_id = ' . $seguiment;
						$result = $db->sql_query($sql);
						$resultat = $db->sql_fetchrow($result);
						$db->sql_freeresult($result);
						$total = $resultat['album_name'] . '/' . $total;
						$seguiment = $resultat ['parent_id'];
					}
				}
				$filepath = $phpbb_root_path . GALLERY_ROOT_PATH . 'upload/' . $total;
				
					if (is_dir($filepath) && !is_link($filepath)){
       					if ($dh = opendir($filepath)){
           					while (($sf = readdir($dh)) !== false){
               					if ($sf == '.' || $sf == '..'){
                    				continue;
              					}
              					
            				}
            				closedir($dh);
        				}
       					 return rmdir($filepath);
    				}
					return unlink($filepath);
El problema es que me dice que no existe el directorio, cuando el directorio es esxactamente el mismo que el de la creacion del directorio que es el que os he pegado en el primer post
  #5 (permalink)  
Antiguo 02/06/2008, 11:47
 
Fecha de Ingreso: septiembre-2005
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problema con el rmdir

Para simplificar la cosa, he hecho que la direccion de la galeria se guarde en la base de datos, entonces me guarda la direccion partiendo de base del root
ej: "/gallery/upload/A"

He modificado el codigo para hacer un select y recojer los datos de la bd y pasarlo para el rmdir:

Código:
$sql = 'SELECT album_dir
				FROM ' . GALLERY_ALBUMS_TABLE . "
				WHERE album_id = '$album_id'";
				$result = $db->sql_query($sql);
				$resultado = $db->sql_fetchrow($result);
				$db->sql_freeresult($result);
				$filepath = $resultado['album_dir'];
				
				
				
					if (is_dir($filepath) && !is_link($filepath)){
       					if ($dh = opendir($filepath)){
           					while (($sf = readdir($dh)) !== false){
               					if ($sf == '.' || $sf == '..'){
                    				continue;
              					}
               				}
            				closedir($dh);
        				}
       					 return rmdir($filepath);
    				}
					return unlink($filepath);
Y me sigue diciendo que no encuentra el directorio.... que no existe vamos, y existir existe...
  #6 (permalink)  
Antiguo 02/06/2008, 14:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 14 años, 6 meses
Puntos: 2135
Respuesta: problema con el rmdir

Tema trasladado a PHP BB
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 14:50.