Copiar directorio recursivo con PHP desde FTP

Pues eso, lo dejo por aquí para empezar a utilizar:

 //Recojo el valor de donde copio y donde tengo que copiar
    function copia($dirOrigen, $dirDestino, $connId)
    {
        //Creo el directorio destino
        ftp_mkdir($connId, $dirDestino);

        //abro el directorio origen
        if ($vcarga = opendir($dirOrigen))
        {
            while($file = readdir($vcarga)) //lo recorro enterito
            {
                if ($file != "." && $file != "..") //quito el raiz y el padre
                {
                    if (!is_dir($dirOrigen.$file)) //pregunto si no es directorio
                    {
                        $localFilePath  = $dirOrigen.$file;
                        $remoteFilePath = $dirDestino.$file;

                        // try to upload file
                        if(ftp_put($connId, $remoteFilePath, $localFilePath, FTP_ASCII)){
                            echo "File transfer successful - $localFilePath<br>";
                        }else{
                            echo "Error subiendo $localFilePath al FTP $remoteFilePath<br>";
                        }           
                    }else{
                        echo " — directorio — <br />"; //era directorio llamo a la función de nuevo con la nueva ubicación
                        copia($dirOrigen.$file."/", $dirDestino.$file."/", $connId);
                    }
                    echo "<br />";
                }
            }
            closedir($vcarga);
        }
    }

    $destino= './web/'.$webURL.'/public_html/';
    $origen = "./nicho/";

    copia($origen, $destino, $connId)

A tener en cuenta que $connId es el puntero a la conexión, os dejo también aquí la llamada para tenerlo completo, esta conexión se ha de realizar antes de llamar a la función como podrás suponer, ya que en la llamada a la función para copiar, ya se hace mención a la variable 😉

  // FTP server details
    $ftpHost   = 'vertutoriales.com';
    $ftpUsername = 'admin';
    $ftpPassword = 'ftppass';

    // open an FTP connection
    $connId = ftp_connect($ftpHost) or die("No pudo conectarse al server: $ftpHost");

    // try to login
    if(@ftp_login($connId, $ftpUsername, $ftpPassword)){
        echo "Conectado as $ftpUsername@$ftpHost";
    }else{
        echo "No pudo conectarse por FTP, revisa el usuario: $ftpUsername y el resto de parámetros";
    }

Comment (1)

  • Carlos Dk 9 agosto, 2022

    Como me alegro de documentarme estas cosas. Gracias mi yo del pasado 😀

    Reply

Leave a comment

Sign in to post your comment or sine up if you dont have any account.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tu software de gestión


Últimas preguntas:

Logo Dkreativo
Vertutoriales