:: Easy-Script.com :: Index du Forum

Votre bannière ici !

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 RSS : Les 20 dernières discussions des forums d'Easy-Script.nom RSS   ProfilProfil   Messages PrivésMessages Privés   ConnexionConnexion 

Poster un nouveau sujet  Répondre au sujet
FTP -> local ou FTP -> FTP
tnerual


Inscrit le: 01 Mai 2006
Messages: 7
Répondre en citant
Bonjour,

J'ai plusieurs recherches mais je n'ai rien trouvé de concret jusqu'à présent. pouvez vous au moins me dire si c'est réalisable en PHP:


JE souhaites transferer un répertoire entier d'un ftp à un autre.

Le script en question ne pouvant étre mis sur le serveur source.

donc soit copie de FTP à FTP à partir d'un serveur distant.
soit FTP à local avec le script en local.


MErci
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 973
Répondre en citant
Salut,

Oui c'est réalisable en PHP et expliqué dans la doc où il y avait un script tout fait pour cela:

Code:
<?php

//If you want to move or replicate the folder hierarchy from your current server to another remote server. Then this will be helpful as this will browse the current server's directory and at the same time it will copy that file in the remote server in the same directory.

//This script will copy all the files from this directory and subdirectory to another remote server via FTP

function rec_copy ($source_path, $destination_path, $con)
{
   ftp_mkdir($con, $destination_path);
   ftp_site($con, 'CHMOD 0777 '.$destination_path);
   ftp_chdir($con,$destination_path);

   if (is_dir($source_path))
   {
       chdir($source_path);
       $handle=opendir('.');
       while (($file = readdir($handle))!==false)
       {
           if (($file != ".") && ($file != ".."))
           {
               if (is_dir($file))
               {
                   // here i am restricting the folder name 'propertyimages' from being copied to remote server. -- VK
                   if($file != "propertyimages")
                   {
                       rec_copy ($source_path."/".$file, $file, $con);
                       chdir($source_path);
                       ftp_cdup($con);
                   }
               }
               if (is_file($file))
               {
                   $fp = fopen($file,"r");
                   // this will convert spaces to '_' so that it will not throw error.  -- VK
                   ftp_fput ($con, str_replace(" ", "_", $file), $fp,FTP_BINARY);
                   ftp_site($con, 'CHMOD 0755 '.str_replace(" ", "_", $file));
               }
           }
       }
       closedir($handle);
   }
}

// make a FTP connection --VK
$con = ftp_connect("69.18.213.131",21);
$login_result = ftp_login($con,"username","password");   

// this is the root path for the remote server-- VK
$rootpath = "mainwebsite_html";   

// this is the physical path of the source directory. actually u can also use the relative path. -- VK
$sourcepath = realpath("../")."/resdesk";

// this directory name will only change the top most directory and not the inner one -- VK
$destination_dir_name = "resdesk_".$account_id."/";

rec_copy ($sourcepath, $destination_dir_name, $con);
if (function_exists("ftp_close"))
{
   ftp_close($con);
}
?>


Voici le lien de la doc: http://fr.php.net/manual/fr/ref.ftp.php

Voir le profil de l'utilisateurEnvoyer un message privé
tnerual


Inscrit le: 01 Mai 2006
Messages: 7
Répondre en citant
merci pour cette réponse, peut étre un élément de réponse dans ton lien.

ton scritp c'est pour du local vers FTP on dirait non?
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 973
Répondre en citant
merci pour cette réponse, peut étre un élément de réponse dans ton lien.

ton scritp c'est pour du local vers FTP on dirait non?

La réponse est le script lui même !
Et il marche pour serveur à serveur (et peut être de local a serveur, à tester), je cite:
move or replicate the folder hierarchy from your current server to another remote server
Voir le profil de l'utilisateurEnvoyer un message privé
tnerual


Inscrit le: 01 Mai 2006
Messages: 7
Répondre en citant
bin oui il fonctionne de local a serveur, et c'est justment ce que je ne veut pas ou du moins l'inverse.

le script en question doit aller chercher des repertoires (sur un FTP lambda que je rentrerai par formulaire) pour les mettre sur mon espace web à moi (ou sur un autre FTP).
v mettre le script à "l'envers", chuis tellement doué que ca risque de pas marcher.
Voir le profil de l'utilisateurEnvoyer un message privé
tnerual


Inscrit le: 01 Mai 2006
Messages: 7
Répondre en citant
j'y arrive po


sur le lien que tu as donner c'est ca qu'il me faudrait mais le lien est mort:
Here is an example for downloading a remote ftp structure to local server, useful for migrating sites from one server to another, especially when you are upgrading ensim

http://leonardo.rol.ro/ftpleech.txt


quelqu'un l'a?
Voir le profil de l'utilisateurEnvoyer un message privé
tnerual


Inscrit le: 01 Mai 2006
Messages: 7
Répondre en citant
Applause
J'ai trouvé ce qu'il me fallait (sur un vieux site russe) à partir des commandes de l'aide.

C'est un peu plus lourd dans le sens FTP -> local mais le script fonctionne.

Il y a en plus un formulaire pour saisir la source ainsi qu'un filtre sur les extensions à transferer ou pas.

voici le code

Code:
<?
GLOBAL $host,$username,$pswd,$dir,$action,$todir,$fulldir;

$img_type = array ("jpg","JPG","gif","GIF","png","PNG","jpeg","JPEG","swf","SWF","mov","MOV","mp3","MP3","mid","MID");
$doc_type = array ("htm","HTM","html","HTML","txt","TXT","dat","DAT","xml","XML","pl","PL","cgi","CGI","php","PHP","phtml","PHTML","php3","PHP3");
$frontpage = array ("_derived","_fpclass","_overlay","_private","_themes","_vti_cnf","_vti_log","_vti_txt","_vti_bin","_vti_pvt","_vti_inf");

if ($action == "copy") {
// Connect to source ftp server
$status = ftp_connect($host,21);
if (!$status) { die ("<center><h1>FTP CONNECTION FAILED TO $host</h1></center>"); }

$login = ftp_login ($status,$username,$pswd);
if (!$login) { die ("<center><h2>Username or Password not accepted on host $host</h2></center>"); }

$dirlist = ftp_nlist ($status,$dir);
if (!$dirlist) { die ("<center><h3>Cannot read directory $dir on host $host</h3></center>"); }

foreach ($dirlist as $eachfile) {

   $slash = explode($dir."/",$eachfile);
   $ext   = explode(".",$slash[1]);

   if ($todir == "") {
      $fulldir = $slash[1];
   } else {
      $fulldir = $todir."/".eachfile;
   }

   if (($ext[0] != "") && ($ext[1] != "")) {
      if (in_array($ext[1],$img_type)) {
         $getstatus = ftp_get($status, $slash[1], $eachfile, FTP_BINARY);
         if (!$getstatus) { print "Unknown Error while retrieving file $slash[1]<br>"; }
         if ($todir != "") {
            system("mv $slash[1] $todir");
         }
         print "Copying binary file $slash[1] from $host$eachfile<br>";
      }
      if (in_array($ext[1],$doc_type)) {
         $getstatus = ftp_get($status, $slash[1], $eachfile, FTP_ASCII);
         if (!$getstatus) { print "Unknown Error while retrieving file $slash[1]<br>"; }
         if ($todir != "") {
            system("mv $slash[1] $todir");
         }
         print "Copying document $slash[1] from $host$eachfile<br>";
      }
   } else {
      if (in_array($slash[1],$frontpage)) {
         print "Passing Frontpage ekstention directory \"$slash[1]\"<br>";
      } else {
         system("mkdir $fulldir");
         system("chmod 0777 $fulldir");
         //system("mv $slash[1] $todir");
         print "Making directory $fulldir<br>";
      }
   }
}


$qst = ftp_quit ($status);
if (!$qst) { die ("<center><h1>Failed while Disconnecting from $host</h1></center>"); }

} else {
print "
<html>

<          <tr>
            <td width=\"44%\"><br>
            </td>
            <td width=\"5%\" align=\"center\"></td>
            <td width=\"51%\"></td>
          </tr>
        </table>
      </td>
      <td width=\"26%\"></td>
    </tr>
  </table>
  <table border=\"0\" width=\"100%\" cellspacing=\"0\">
    <tr>
      <td width=\"28%\"><br>
      </td>
      <td width=\"46%\"></td>
      <td width=\"26%\"></td>
    </tr>
  </table>
  <p align=\"center\"><input type=\"submit\" value=\"  OK Let's copy  \" name=\"Button\"></p>
  <input type=\"hidden\" name=\"action\" value=\"copy\">
</form>

<p align=\"center\"><br>
<br>
<b>Note :</b> If ftp connection failed, try using <a href=\"ftp://ftp.yourdomain.com\">ftp.yourdomain.com</a>
or <a href=\"http://www.yourdomain.com\">www.yourdomain.com</a> <br>
eliminate the &quot;<a href=\"ftp://\">ftp:// </a>&quot; protocol<br>
<br>
</p>

</body>

</html>";
}
?>


Dernière édition par tnerual le Ven 05 Mai 2006, 3:53 pm; édité 1 fois
Voir le profil de l'utilisateurEnvoyer un message privé
tnerual


Inscrit le: 01 Mai 2006
Messages: 7
Répondre en citant
Une autre question

ce scipt s'execute trés bien sur mon serveur chez ovh mais le méme en local chez moi avec apache il se passe rien. j'ai oublier de config un truc dans apache???
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 973
Répondre en citant
Y a-t-il des erreurs qui sont générées qui pourraient nous mettre sur la voie...
Voir le profil de l'utilisateurEnvoyer un message privé
tnerual


Inscrit le: 01 Mai 2006
Messages: 7
Répondre en citant
Bin en fait non justement, il se passe strictement rien, je rempli le formulaire et des que je valide je suis toujours sur le formulaire qui est redevenu vierge comme si la page s'actualisait.

y a t'il des options a rajouter dans mon php.ini pour certaines fonctions phph soit valides?
Voir le profil de l'utilisateurEnvoyer un message privé
Annonces && Topic Scooping
FTP -> local ou FTP -> FTP
Vous pouvez poster de nouveaux sujets dans ce forum
Vous pouvez répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Toutes les heures sont au format GMT + 2 Heures  
Page 1 sur 1  

  
  
 Poster un nouveau sujet  Répondre au sujet  


Powered by phpBB © 2001, 2002 phpBB Group
Traduction par : phpBB-fr.com
Design by Vjacheslav Trushkin
phpBB SEO

Anti Bot Question MOD - phpBB MOD against Spam Bots
Inscriptions / messages bloqués: 2641 / 609