Comment copier un fichier de mon serveur ftp sur mon disque dur

pmnantes -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

En localhost le code :

copy('tmp/save_param.csv', 'C:\chemin_dossier_destination\save_param.csv');

... copie bien sur mon disque dur le fichier avec le contenu initial, mais si je test ce code depuis mon site, le fichier contient le code html de ma page web à la place du contenu initial.

Comment faire une véritable copie du fichier depuis le serveur distant ?

Merci d'avance pour votre aide !

10 réponses

  1. Utilisateur anonyme
     
    Bonjour
    Vous pouvez aussi essayez un client FTP (programme) gratuit et simple comme Filezilla, il possède une interface graphique proche de l'explorateur, est 100% gratuit et très diffusé.
    A+
    -1
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       
      Vu qu'il poste dans le forum programmation, il y a de fortes chances qu'il veuille automatiser ça..

      Par conséquent, utiliser un logiciel ne dois pas répondre à son besoin.
      Mais bon, attendons son retour...
      0
      1. pmnantes > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Oui, c'est effectivement pour réaliser une sauvegarde automatique !
        0
    2. pmnantes
       
      Merci Macintosh, c'est ce que j'utilise !
      0
      1. brucine Messages postés 25275 Date d'inscription   Statut Membre Dernière intervention   4 187 > pmnantes
         
        Bonsoir,

        Les possibilités sont multiples, rien ne s'oppose à ce que cela soit fait via un script batch tout bête.
        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833 > brucine Messages postés 25275 Date d'inscription   Statut Membre Dernière intervention  
         
        c'est sûr ... mais vu qu'il a posé sa question dans le forum PHP .. on peut naturellement s'attendre à ce que la réponse soit du php ...
        0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    Je te repose donc la question, quel code as-tu écrit as-tu au moins regarder le lien que je t'ai donné ?
    0
  3. pmnantes
     
    Merci pour ton lien jordane45 !

    J'ai testé ftp_connect() et ftp_ssl_connect(), mais impossible t'établir la connexion.

    Pour $ftp_server j'utilise l'équivalent de l'Hôte dans FileZilla, est-ce bien cela ?
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       
      ça serait bien qu'à un moment tu nous montres le code que tu essais d'écrire..

      En attendant, essaye ça
      $ftp_server = "le_hostname_de_tonserveur_ou_son_ip";
      $ftp_user_name = "userftp";
      $ftp_user_pass = "password_ftp";
      
      $conn_id = ftp_connect($ftp_server);
      
      // login with username and password
      $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
      
      // Vérification de la connexion
      if ((!$conn_id) || (!$login_result)) {
        var_dump(error_get_last());
        die("Echec de la connexion FTP !");
      }else{
        echo "connexion OK";
      }
      
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. pmnantes
     
    Merci jordane45, voici mon code :


    $ftp_server = 'ftp.xxxxxxx.nfrance.net';

    $ftp_user_name = 'identifiant_ftp';
    $ftp_user_pass = 'mot_de_passe_ftp';

    $server_file = 'tmp/save_param.csv';
    $local_file = 'C:\chemin_dossier_destination\save_param.csv';

    $ftp = ftp_connect($ftp_server) or die("Impossible de se connecter à : $ftp_server !");

    $login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass) or die("Impossible de s'identifier !");

    if (ftp_get($ftp, $local_file, $server_file, FTP_BINARY))
    {
    echo "Le fichier $local_file a été écrit avec succès";
    }
    else
    {
    echo "Il y a un problème";
    }

    ftp_close($ftp);


    ... c'est un peu similaire au tiens.

    J'ai un doute pour $ftp_server.

    Lorsque tu notes "le_hostname_de_tonserveur_ou_son_ip", il s'agit bien de ce que l'on renseigne en Hôte dans FileZilla, non ?

    J'ai testé avec le préfixe ftp. et sans, même problème !
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       
      Oui c'est la même chose que dans FileZilla
      Par contre.. tu as un message d'erreur ?? il faudrait nous le donner
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Sachant que mon code permet d'avoir plus de détails sur l'erreur éventuelle
        0
  6. pmnantes
     
    Avec ton code j'ai le message suivant "ftp_login() expects parameter 1 to be resource, bool given"
    0
    1. pmnantes
       
      Si je teste avec le bout de code

      $conn_id = ftp_connect($ftp_server) or die("Impossible de se connecter à : $ftp_server !")


      ... j'ai le message "Impossible de se connecter à : ftp.xxxxxxxxx.nfrance.net !"
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833 > pmnantes
         
        mon code donne un message d'erreur plus clair
        Peux tu le tester stp !!
        0
  7. pmnantes
     
    Voici l'ensemble des infos retournées avec ton code :

    array(4) { ["type"]=> int(2) ["message"]=> string(58) "ftp_login() expects parameter 1 to be resource, bool given" ["file"]=> string(67) "/home/users/xxxxxxxxxxxxxxxxx/debug.php" ["line"]=> int(24) } Echec de la connexion FTP !
    0
  8. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    C'est donc que tu as un problème sur la fonction ftp_connect ... tu es sûr de mettre le bon hostname (essaye avec son IP à la place)

    Essaye comme ceci
    <?php
    $ftp_server = "le_hostname_de_tonserveur_ou_son_ip";
    $ftp_user_name = "userftp";
    $ftp_user_pass = "password_ftp";
    
    $conn_id = ftp_connect($ftp_server);
    if (!$conn_id) {
      var_dump(error_get_last());
      die("Echec de la connexion FTP sur " . $ftp_server);
    }
    // login with username and password
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    
    // Vérification de la connexion
    if (!$login_result) {
      var_dump(error_get_last());
      die("Echec de la connexion FTP !");
    }else{
      echo "connexion OK";
    }
    
    0
  9. pmnantes
     
    Avec ce nouveau bout de code j'ai le message d'erreur suivant :

    NULL Echec de la connexion FTP sur ftp.xxxxxxxxxxxxxxxx.nfrance.net
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       
      Pour l'accès au FTP .. le host .. c'est juste le nom de domaine
      Il ne faut pas mettre ftp. devant..

      Pour l'ip.. il suffit de faire un PING
      0
  10. pmnantes
     
    Pour hostname :

    $ftp_server = "le_hostname_de_tonserveur_ou_son_ip";


    ... j'utilise exactement celui que je renseigne en Hôte dans FileZilla, et testé avec et sans le préfixe ftp., et pour l' IP, je ne vois pas où la trouver ni sous quelle forme.
    0