Foros del Web » Programando para Internet » PHP »

FTP borrar carpeta

Estas en el tema de FTP borrar carpeta en el foro de PHP en Foros del Web. Hola foreros: Estoy intentando borrar una carpeta vacia, ya que para poder borrar una carpeta es necesario borrar antes todos los elementos que esta tenga ...
  #1 (permalink)  
Antiguo 02/10/2008, 05:28
Avatar de c4_esp_VR  
Fecha de Ingreso: julio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 0
FTP borrar carpeta

Hola foreros:

Estoy intentando borrar una carpeta vacia, ya que para poder borrar una carpeta es necesario borrar antes todos los elementos que esta tenga dentro, pero eso es otro tema.

Puedo crear carpetas y subir y borrar ficheros pero no puedo borrar una carpeta sin nada en su interior.

Estoy usando la función ftp_rmdir de la siguiente manera.

Código PHP:
include('includes/ftpfunc.php');
$id_ftp=ConectarFTP();
$ruta=ObtenerRuta();

$dir $_GET["dir"];
$fichero $_GET["fichero"];

$rutaFinal$ruta.'/'.$dir.'/'.$fichero;

$pos strpos($fichero".");


if (
$pos === false)
{
    if (
ftp_rmdir(id_ftp,$rutaFinal))
    {
        echo 
'Carpeta '.$fichero.' borrada correctamente';
    }
    else
    {
        echo 
'No se puede borrar la carpeta '.$fichero;
    }
}
else
{
    if (
ftp_delete($id_ftp$rutaFinal)) 
    {
        echo 
'Fichero '.$fichero.' borrado correctamente';
    }
    else
    {
        echo 
'No se puede borra el archivo '.$fichero;
    }
}
ftp_close($id_con); 
Donde $rutaFinal sería similar a "/Download/prueba/borrame" donde borrame es la carpeta que deseamos borrar pero me sale el error 'No se puede borrar la carpeta borrame'

Imagino que el problema está en la ruta que le estoy dando o que no tengo privilegios, pero no sé que puede ser, así que como siempre os pido ayuda

Gracias foreros del web.
  #2 (permalink)  
Antiguo 02/10/2008, 06:49
Avatar de jmillan  
Fecha de Ingreso: julio-2008
Mensajes: 60
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: FTP borrar carpeta

Cubatron posteo esta respuesta en un post en el foro:

Si estas en un servidor linux puedes usar esta funcion:

Código PHP:
<?
$output = shell_exec("rm -rf ./directorio");
echo(nl2br($output));
?>
./directorio hace referencia a un directorio que se encuentra en el mismo lugar donde esta el script.

Saludos
  #3 (permalink)  
Antiguo 02/10/2008, 11:59
Avatar de c4_esp_VR  
Fecha de Ingreso: julio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: FTP borrar carpeta

Gracias jmillan.

Vamos a probarla y os comento el resultado.
  #4 (permalink)  
Antiguo 02/10/2008, 12:28
Avatar de c4_esp_VR  
Fecha de Ingreso: julio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: FTP borrar carpeta



La verdad es que lo había visto pero viendo que se salia de las funciones de php para ftp no le hice mucho caso pero la verdad es que funciona de PM ya que incluso borra los archivos que tiene dentro sin necesidad de ir borrando los archivos de uno a uno.

Bueno sólo hacer una referencia, hay que diferencias que si el servidor es bajo Linus usaremos los siguiente:

Código PHP:
<?
$output 
shell_exec("rm -rf ./directorio");
echo(
nl2br($output));
?>
Si el servidor es bajo Windows, lo siguiente:

Código PHP:
<?
$output 
shell_exec("del -rf ./directorio");
echo(
nl2br($output));
?>
Gracias por todo, una gran respuesta.
  #5 (permalink)  
Antiguo 03/11/2008, 17:36
 
Fecha de Ingreso: enero-2008
Mensajes: 21
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: FTP borrar carpeta

Cita:
Iniciado por c4_esp_VR Ver Mensaje
Hola foreros:

Estoy intentando borrar una carpeta vacia, ya que para poder borrar una carpeta es necesario borrar antes todos los elementos que esta tenga dentro, pero eso es otro tema.

Puedo crear carpetas y subir y borrar ficheros pero no puedo borrar una carpeta sin nada en su interior.

Estoy usando la función ftp_rmdir de la siguiente manera.

Código PHP:
include('includes/ftpfunc.php');
$id_ftp=ConectarFTP();
$ruta=ObtenerRuta();

$dir $_GET["dir"];
$fichero $_GET["fichero"];

$rutaFinal$ruta.'/'.$dir.'/'.$fichero;

$pos strpos($fichero".");


if (
$pos === false)
{
    if (
ftp_rmdir(id_ftp,$rutaFinal))
    {
        echo 
'Carpeta '.$fichero.' borrada correctamente';
    }
    else
    {
        echo 
'No se puede borrar la carpeta '.$fichero;
    }
}
else
{
    if (
ftp_delete($id_ftp$rutaFinal)) 
    {
        echo 
'Fichero '.$fichero.' borrado correctamente';
    }
    else
    {
        echo 
'No se puede borra el archivo '.$fichero;
    }
}
ftp_close($id_con); 
Donde $rutaFinal sería similar a "/Download/prueba/borrame" donde borrame es la carpeta que deseamos borrar pero me sale el error 'No se puede borrar la carpeta borrame'

Imagino que el problema está en la ruta que le estoy dando o que no tengo privilegios, pero no sé que puede ser, así que como siempre os pido ayuda

Gracias foreros del web.
Hola,estupendo trabajo ,lo andaba buscando por el foro y estaba ya desesperado, podrias echarme una mano en estas funciones?

include('includes/ftpfunc.php');
$id_ftp=ConectarFTP();
$ruta=ObtenerRuta();

$dir = $_GET["dir"];
$fichero = $_GET["fichero"];

-Cual es el contenido de la funcion conectarftp() y obtenerRuta()?
-Como envias el directorio y nombre del fichero a borrar para luego recogerlo con get?

-Si estas en una pagina donde visualizas fotos por ejemplo y deseas eliminar una en concreto ,usariamos la funcion de buscar en directorios o mendiante un boton se podria enviar el nombre del fichero para compararlo con el nombre q esta en el ftp...

--------Gracias por todo,espero q podais ayudarme q ando un poco oxidado ya! jeje---------------

Última edición por mondmon2; 03/11/2008 a las 17:41
  #6 (permalink)  
Antiguo 12/11/2008, 12:21
 
Fecha de Ingreso: enero-2008
Mensajes: 21
Antigüedad: 16 años, 4 meses
Puntos: 0
Exclamación Respuesta: FTP borrar carpeta

Buenas! Alguien podria echarme una mano con estas 2 funciones de conectarftp() y obtenerRuta()?
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 23:07.