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

Langage PHP Discussion :

[FTP] Récupérer un ficher distant avec ftp_get


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 676
    Points : 131
    Points
    131
    Par défaut [FTP] Récupérer un ficher distant avec ftp_get
    Bonjour,

    J'essaie de récupérer le fichier compta.txt de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $c = ftp_connect ("hôte") or die ("Connexion FTP Impossible");
    ftp_login ($c, "login", "pass") or die ("Login FTP Impossible");
    if (ftp_get ($c, 'compta.txt', '/htdocs/www/file/compta.txt', FTP_ASCII)) {echo "GOOD !";}
    else {echo "PROBLEME !!!";}
    ftp_close ($c);
    Aucun message d'erreur, il s'affiche bien le msg "GOOD", mais le fichier compta.txt est impossible à trouver sur mon Macintosh.
    J'ai essayé de donner des chemins plus précis, genre :
    DisqueDurNuméroUn/DossierEssai/compta.txt
    Mais cette fois je me prenais des msg d'erreur comme quoi il était impossible d'ouvrir le fichier en question (qui, je le précise, n'existe pas en local, je vais le chercher sur le serveur).

    J'ai vu la doc officielle PHP, rien pour m'aider, si quelqu'un comprend le bug, MERCI d'avance.

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Salut,


    je pense que tu as juste inversé les parametre local et server dans la fonction ftp_get.

    Essaie avec ce bout de code

    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
     
    <?php
     
    // Définission de quelques variables
    $local_file = './tst/local.zip';
    $server_file = 'new-this-day.gz';
     
    // Mise en place d'une connexion basique
    $conn_id = ftp_connect("ftp.oleane.fr");
     
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($conn_id, "anonymous", "");
     
    // 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_ASCII)) {
       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);
     
    ?>
    C'est un copier coller de php.net à peu de choses près.

    Bye

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 676
    Points : 131
    Points
    131
    Par défaut
    MERCI beaucoup de ta réponse,

    Mon code est aussi un quasi copier-coller de PHP-Net, et non, je n'ai pas inversé les fichiers locaux et distants.

    'compta.txt' est mon fichier local.

    Cela dit, je vois que tu lets un "." devant ton /, je ne l'ai pas fait, mais c'est sur le fichier distant.

    Si tu peux regarder une deuxième fois, MERCI d'avance.

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    A vrai dire je vois pas trop comment t'aider plus si le code est bon... Ceci dit tu est sous MAC, donc a priori sous unix.

    Ce qui me fait dire que tu pourrais commencer par toi aussi indiquer un ./ devant ton nom de fichier local de manière à indiquer à php d'ecrire ton fichier dans le même repertoire que le script qui s'execute.

    Petit deux, PHP à t'il bien les droit d'ecriture necessaire ?

    Essaie un petit chmod 777 sur le repertoire. Je ne suis pas tout à fait sur de la syntaxe, rencarde toi auprès des pages MAN.

    Bye

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 676
    Points : 131
    Points
    131
    Par défaut
    Merci de ta réponse,

    Je n'ai pas dit que code est bon, vu qu'il ne marche pas, mais ce n'est pas dû à l'inversion des fichiers locaux et distants.

    Je viens d'essayer en ajoutant ./ devant le nom de mon fichier local, même punition, le script s'exécute sans message d'erreur, mais le fichier local est introuvable...

    Peut-être un problème de droit, en effet, je vais interroger mon hébergeur.

    MERCI de ton aide.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut meme soucis
    Bonjour , j'ai le meme soucis j'aurais bien aimé savoir si tu avais trouvé la solution, ou si quelqu'un la connait... je suis sous linux

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Je vais me faire taper sur les doigts
    Re bonjour, bon en fait je viens de le trouver mais il est dans le dossier ou s'est executer le script !!! ce que j'aimerais c'est de pouvoir choisir un dossier sur ma machine du genre /home/document/telechargement/ pour qu'il le mette dedans c'est possible ou pas?

    J'avais pas vu la date... c'etait il y a longtemps....mais bon sait on jamais...

    Bon j'edit mon message car j'ai trouvé une solution tres simple !! Dans une page html je rajoute simplement un lien avec l'adresse url de mon serveur... pas de ftp_get et ca fonctionne ! (bon d'accord j'aurais du y penser avant mais je debute...enfin presque)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href = "http://monserveur/monrepertoire/monfichier"> telecharger le fichier </a>
    Voila !! je crois pas pouvoir mettre "resolu" car ce n'est pas moi qui ai ouvert la discussion !

Discussions similaires

  1. [PHP 5.2] FTP : Récupérer des fichiers distants pour copie vers le mien
    Par renaud26 dans le forum Langage
    Réponses: 4
    Dernier message: 26/12/2014, 17h22
  2. Récupérer un fichier distant par FTP
    Par libuma dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2009, 12h07
  3. FileChannel from Fichier distant avec connexion (FTP)
    Par hassanJava dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 22/12/2008, 11h52
  4. Réponses: 1
    Dernier message: 25/10/2007, 13h02
  5. [FTP] Warning avec ftp_get, mais pas de message d'erreur
    Par NomUtilisateurDejaPris dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2006, 18h12

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