IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème FTP Download


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Points : 50
    Points
    50
    Par défaut Problème FTP Download
    Bonjour,

    J'essaie de télécharger d'un site distant vers mon PC un fichier en utilisant une connexion FTP.

    J'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // Définition de quelques variables
    $local_file = 'E:/local.zip';
    $server_file = 'server.zip';
     
    // Mise en place d'une connexion basique
    $conn_id = ftp_connect($ftp_server);
     
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
     
    // Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
        echo "Le fichier $local_file a été écris avec succès\n";
    } else {
        echo "Il y a un problème\n";
    }
     
    // Fermeture de la connexion
    ftp_close($conn_id);
    J'ai essayé plusieures fois sans succès.
    Une aide serait la bienvenue.

    Merci d'avance.

    Samuel PATARIN

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Comme tu reprends juste l'exemple de la documentation, est-ce que les valeurs de $ftp_server, $ftp_user_name et $ftp_user_pass sont correctement renseignés?

    Est-ce que la connexion marche avec un client ftp normal?

    Où se situe l'erreur, après ftp_login, ftp_connect ou ftp_get?

  3. #3
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    Bonsoir,

    Voici le code complet que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $ftp_server="ftp.technodom-blog.com";
     
    $ftp_user_name = "xxxxxxxxxx";
    $ftp_user_pass = "xxxxxx";
     
     
    // Définition de quelques variables
    $local_file = 'E:\local.zip';
    $server_file = 'server.zip';
     
    // Mise en place d'une connexion basique
    $connexion=ftp_connect($ftp_server) or die("Problème de connexion au serveur, réessayer ultérieurement");
     
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
     
    // Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
        echo "Le fichier $local_file a été écris avec succès\n";
    } else {
        echo "Il y a un problème\n";
    }
     
    // Fermeture de la connexion
    ftp_close($conn_id);
    La connexion au serveur FTP se déroule correctement, mais c'est après le ftp_get qu'il y a un souçi.
    Le client FTP fonctionne normalement.

    Merci d'avance pour votre aide.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Est-ce que le chemin du fichier sur le serveur est bien correct?
    Utilise ftp_pasv avant ftp_get pour basculer en mode passif, pour voir?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp_pasv($conn_id, true);

  5. #5
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    J'ai rajouté la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp_pasv($conn_id, true);
    au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    $ftp_server="ftp.technodom-blog.com";
     
    $ftp_user_name = "xxxxxxxxxx";
    $ftp_user_pass = "xxxxxx";
     
     
    // Définition de quelques variables
    $local_file = 'E:\local.zip';
    $server_file = 'server.zip';
     
    // Mise en place d'une connexion basique
    $connexion=ftp_connect($ftp_server) or die("Problème de connexion au serveur, réessayer ultérieurement");
     
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
     
    // Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
        echo "Le fichier $local_file a été écris avec succès\n";
    } else {
        echo "Il y a un problème\n";
    }
     
    // Fermeture de la connexion
    ftp_close($conn_id);
    sans succès.
    Pourtant le fichier server.zip est dans le même répertoire que le code de connexion.

    Une idée.....?

  6. #6
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Points : 50
    Points
    50
    Par défaut Suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    $ftp_server="ftp.technodom-blog.com";
     
    $ftp_user_name = "xxxxxxxx";
    $ftp_user_pass = "xxxxxxx";
     
     
    // Définition de quelques variables
    $local_file = 'E:\local.zip';
    $server_file = 'server.zip';
     
    // Mise en place d'une connexion basique
    $connexion=ftp_connect($ftp_server) or die("Problème de connexion au serveur, réessayer ultérieurement");
     
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($connexion, $ftp_user_name, $ftp_user_pass);
     
    ftp_pasv($connexion, true);
     
    echo ftp_pwd($connexion);
     
    // Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
    if (ftp_get($connexion, $local_file, $server_file, FTP_BINARY)) {
        echo "Le fichier $local_file a été écris avec succès\n";
    } else {
        echo "Il y a un problème\n";
    }
     
    // Fermeture de la connexion
    ftp_close($connexion);
     
    ?>
    J'ai modifié le $conn_id par $connexion sans succès.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il faudra avoir un message d'erreur pour savoir ce qu'il se passe.

    Pourrais-tu ajouter la ligne suivante à ton code stp?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
        echo "Le fichier $local_file a été écris avec succès\n";
    } else {
        echo "Il y a un problème\n";
        print_r(error_get_last());
    }

  8. #8
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Points : 50
    Points
    50
    Par défaut Suite
    Voila ce que j'obtiens.
    A priori, il ne trouve pas le fichier alors qu'il est bien présent.....???

    Array ( [type] => 2 [message] => ftp_get(): server.zip: No such file or directory [file] => /homepages/30/d528422064/htdocs/blog/devis_ligne/devis/lecture_fichier.php [line] => 24 )

  9. #9
    Invité
    Invité(e)
    Par défaut
    Pourrais-tu t'assurer que tu as bien un fichier nommé server.zip et qu'il se trouve bien dans home directory du serveur ftp?

    Eventuellement effectuer une connexion manuelle à ton serveur ftp et lister le contenu juste après authentification pour s'assurer que le fichier server.zip est bien au bon endroit.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ouvrir un terminal ou cmd
    ftp <ton_user>@<ton_server>
    password:
    <ton mot de passe>
    ls

  10. #10
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Points : 50
    Points
    50
    Par défaut Suite
    J'ai déplacé le fichier server.zip à la racine du serveur FTP.
    Je lance le code (lecture_fichier.php) et un fichier nommé E:\local.zip est bien cré mais non pas sur mon disque dur mais dans le répertoire dans lequel est placé lecture_fichier.php.

    Comment y remedier ?
    Je souhaiterais que le fichier soit copié sur mon disque dur et non pas sur le serveur.

  11. #11
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Points : 50
    Points
    50
    Par défaut Suite
    J'ai déplacé le fichier (lecture_fichier.php) de mon serveur FTP vers mon serveur local.
    Lorsque je l'exécute, il réalise bien la copie du fichier somefile.txt (à la racine du serveur FTP) vers le disque local.

    Cependant, existe t-il un moyen de faire une copie du fichier depuis le serveur FTP ?

    Autre question, quel doit être le chemin du fichier somefile.txt dans lecture_fichier.php si celui-ci ne se trouve pas à la racine du serveur FTP ?

    Merci d'avance.

    Samuel PATARIN

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ton script lecture_fichier.php est un script client qui va stocker localement le fichier rapatrié à l'endroit où il se trouve.

    Donc si tu places ton script php sur un serveur ovh, le fichier sera stocké chez ovh.

    Si tu veux absolument stocker sur ton poste local, le plus simple sera de mettre le script php sur ton serveur local comme tu l'as déjà fait.

    Pour récupérer un fichier qui n'est pas à la racine, il suffit d'indiquer le chemin.

    Si somefile.txt se trouve par exemple dans le repertoire toto,il faudra spécifier le chemin de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $server_file = 'toto/somefile.txt';

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème FTP avec Inet
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/08/2007, 23h51
  2. [PGADMIN3][DEBIAN-Sarge]"Problème" de download des packages
    Par hackrobat dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 07/03/2007, 15h15
  3. [FTP] download de fichiers sur serveur AIX
    Par han39 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2006, 17h44
  4. [Javabean/sun.net.ftp] Downloader un fichier txt
    Par benben13 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 13/09/2005, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo