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] Fonctions FTP de PHP [Fait]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut [FTP] Fonctions FTP de PHP
    Bonjour,
    voila j'essaye d'uploader un fichier sur un compte free depuis une page hébergée sur un autre FTP.
    Pour cela voila le script que j'ai trouvé après avoir fouiller un peu sur internet :
    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
    34
    35
    36
    37
    38
     
    <?php
     
    $ftp_server="ftpperso.free.fr";
    $ftp_user_name="*****";
    $ftp_user_pass="****";
    $source_file="C:\Telechargement\Leucate_plage.pdf";
    $destination_file="./Photos/Leucate_plage.pdf";
     
    // Création de la connexion
    $conn_id = ftp_connect("$ftp_server");
     
    // Authentification avec nom de compte et mot de passe
    $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
     
    // Vérification de la connexion
    if ((!$conn_id) || (!$login_result)) {
            echo "La connexion FTP a échoué!";
            echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
            die;
        } else {
            echo "Connecté à $ftp_server, avec $ftp_user_name<br>";
        }
     
    // Téléchargement d'un fichier.
    $upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);
     
    // Vérification de téléchargement
    if (!$upload) {
            echo "Le téléchargement Ftp a échoué!";
        } else {
            echo "Téléchargement de $source_file sur $ftp_server en $destination_file";
        }
     
    // Fermeture de la connexion FTP.
    ftp_quit($conn_id);
     
    ?>
    Voici ce que me renvoie la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Connecté à ftpperso.free.fr, avec *****
    Le téléchargement Ftp a échoué!
    Donc je me demande si ça ne serait pas un problème dans la définition des chemins mais après avoir en avoir essayés de multiples ça ne fonctionne toujours pas. Je précise que jai mis le droit d'écriture sur le dossier de destination.

    Voila quelqu'un peut-il m'aider ?

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    pourquoi tu passes pas par les routines upload

    vas voir ==>>

    http://www.vulgarisation-informatiqu...upload-php.php


  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    En fait au départ j'utilisé cela, mais j'avais le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: move_uploaded_file(http://****.free.Fr/Photos/9.jpg): failed to open stream: HTTP wrapper does not support writeable connections.
    Cependant quand j'utilisais ce code directement sur le compte free cela fonctionnait, mais dès que j'utilisais depuis un autre FTP ça me marchait pas, j'en ai donc déduis que cela n'était pas possible et après avoir consulté sur internet, on m'a dit d'utiliser les fonctions FTP...

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    prends le code tel qu'il est sur le site

    ca marche chez free


  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    oui mais c'est pas ça le problème le mien aussi marche chez free.
    Le truc c'est que j'essaye d'uploader un fichier sur un compte free depuis une page stockée sur un autre FTP autre que free, c'est ce que fait ton script ?

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    en fait le script upload le fichier dans un réperteroire ou les droits d'acces sont en ecriture...


    au fait tu as vérifié les droits du dossier sur lequel tu uploads le fichier ?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    Comme je l'ai précisé dans mon premier message, oui j'ai bien mis les droits en écritures.

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Le script apporté par le lien permet l'upload d'un fichier sur le serveur à partir d'une page du serveur lui-même. Si tu souhaites upload des fichiers à distance il faut effectivement passer par les fonctions FTP, comme tu l'as fait .

    Maintenant pour ce qui est ton message d'erreur je vais plutot te diriger vers ce lien : Comment réaliser un formulaire d'upload via FTP ?

    Aussi il faudrait vérifier que ton fichier est bien dans le répertoire que tu lui dit. Donc essayes avec le formulaire d'upload, sélectionne ton fichier et viens nous revoir pour nous dire le résultat.

  9. #9
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par Kerod
    Le script apporté par le lien permet l'upload d'un fichier sur le serveur à partir d'une page du serveur lui-même. Si tu souhaites upload des fichiers à distance il faut effectivement passer par les fonctions FTP, comme tu l'as fait .

    Maintenant pour ce qui est ton message d'erreur je vais plutot te diriger vers ce lien : Comment réaliser un formulaire d'upload via FTP ?

    Aussi il faudrait vérifier que ton fichier est bien dans le répertoire que tu lui dit. Donc essayes avec le formulaire d'upload, sélectionne ton fichier et viens nous revoir pour nous dire le résultat.
    Comme tu l'indiques il faut effectivement passer par des fonctions ftp.
    Je suis pas d'accord avec toi , d'autres manières existent beaucoup plus simples comme :

    <form action="upload.php" method="post" enctype="multipart/form-data">
    <p><input type="file" name="fichier_source" /><input type="submit" value="Envoyer" /></p>
    </form>

    d'ailleurs j'ai fait l'essai ca marche chez free.

    L'experience du ftp est beaucoup plus lourde.

    cordialement.

  10. #10
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    Donc je viens d'assayer avec le formulaire de developpez donc voici le 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php
     
    define('CFG_FTP_SERVER', 'ftpperso.free.fr');	// Adresse du FTP
    define('CFG_FTP_USERNAME', '*******');	// Nom d'utilisateur
    define('CFG_FTP_PASSWORD', '***********');	// Mot de passe
    define('CFG_FTP_TIMEOUT', 2);		// Définition du délai de connexion en secondes
     
    if(!empty($_FILES['fichier']) && $_FILES['fichier']['error'] == UPLOAD_ERR_OK && is_uploaded_file($_FILES['fichier']['tmp_name']))
    {
      $fichier_a_uploader = $_FILES['fichier']['tmp_name'];
      $dossier_destination = '/' . $_FILES['fichier']['name'];
     
      $conn_id = ftp_connect(CFG_FTP_SERVER);	// Création de la connexion au FTP
     
      if(empty($conn_id))
      {
        echo 'Échec de connexion à ' . CFG_FTP_SERVER;
      }
      else
      {
        // Définition du délai de connexion à 2 secondes
        ftp_set_option($conn_id, FTP_TIMEOUT_SEC, CFG_FTP_TIMEOUT);
     
        echo "Connecté au FTP\n<br>";
     
        // Identification avec le nom d'utilisateur et le mot de passe
        $login_result = ftp_login($conn_id, CFG_FTP_USERNAME, CFG_FTP_PASSWORD);
     
        if(!$login_result)
        {
          echo "Échec d'identification à " . CFG_FTP_SERVER;
        }
        else
        {
          // Tentative de chargement sur le serveur FTP
          if(ftp_put($conn_id, $dossier_destination, $fichier_a_uploader, FTP_BINARY))
          {
            echo "Le fichier $fichier_a_uploader a été chargé avec succès\n";
          }
          else
          {
            echo "Il y a eu un problème lors du chargement du fichier $fichier_a_uploader\n";
          }
        }
        // Fermeture de la connexion
        ftp_close($conn_id);
      }
    }
     
    ?>
    et voici ce que ça me renvoit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Fatal error: Call to undefined function: ftp_connect() in /mnt/116/sdb/3/c/*******/uploadftp.php on line 13
    .......

  11. #11
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    est ce que ca pourrais venir de la déclaration de tes constantes?

    si tu n'urilise pas de constante mais bien des vrariables...ca fait la meme chose?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $serveur_ftp = 'ftpperso.free.fr';
     
    $conn_id = ftp_connect($serveur_ftp) or die("Impossible de se connecter au serveur $serveur_ftp");
    ?

  12. #12
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    c'est ce que j'ai essayé mais ça ne change rien, c'est bizarre....

  13. #13
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    je sais que ca change surment rien car tu es en bonne version mais...ta version de php est bien supérieur ou égale a 3.0.13 ?

  14. #14
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    PHP Version 4.3.10-16 ...

  15. #15
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Citation Envoyé par gseverin
    Comme tu l'indiques il faut effectivement passer par des fonctions ftp.
    Je suis pas d'accord avec toi , d'autres manières existent beaucoup plus simples comme :

    <form action="upload.php" method="post" enctype="multipart/form-data">
    <p><input type="file" name="fichier_source" /><input type="submit" value="Envoyer" /></p>
    </form>

    d'ailleurs j'ai fait l'essai ca marche chez free.

    L'experience du ftp est beaucoup plus lourde.

    cordialement.
    Ok mais qu'est-ce que fait ceci exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <form action="upload.php" method="post" enctype="multipart/form-data">
    <p><input type="file" name="fichier_source" /><input type="submit" value="Envoyer" /></p>
    </form>
    Il upload le fichier dans un répertoire temporaire du serveur d'execution et non un serveur distance. Alors comment veux-tu avec cette méthode passer un fichier d'un serveur à un autre si tu utilises aucunes méthodes ftp . Si tu as un remède je veux bien le connaitre.
    D'ailleurs si tu avais regarder le code dans le lien tu aurais remarqué qu'il y a le même formulaire et ensuite l'upload par ftp.


    Sinon et comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $serveur_ftp = 'ftpperso.free.fr';
     
    $conn_id = ftp_connect("$serveur_ftp") or die("Impossible de se connecter au serveur $serveur_ftp");
    Ce qui est étrange c'est que le code donné dans le lien fonctionne très bien sur différents serveurs. mais il est vrai que j'ai pas testé sous Free

  16. #16
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    haaa merci kerod de bien rectifier ma recherche

  17. #17
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par Kerod
    Ok mais qu'est-ce que fait ceci exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <form action="upload.php" method="post" enctype="multipart/form-data">
    <p><input type="file" name="fichier_source" /><input type="submit" value="Envoyer" /></p>
    </form>
    Il upload le fichier dans un répertoire temporaire du serveur d'execution et non un serveur distance. Alors comment veux-tu avec cette méthode passer un fichier d'un serveur à un autre si tu utilises aucunes méthodes ftp . Si tu as un remède je veux bien le connaitre.
    D'ailleurs si tu avais regarder le code dans le lien tu aurais remarqué qu'il y a le même formulaire et ensuite l'upload par ftp.


    Sinon et comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $serveur_ftp = 'ftpperso.free.fr';
     
    $conn_id = ftp_connect("$serveur_ftp") or die("Impossible de se connecter au serveur $serveur_ftp");
    Ce qui est étrange c'est que le code donné dans le lien fonctionne très bien sur différents serveurs. mais il est vrai que j'ai pas testé sous Free

    Et on va pas targiverser pendant 30 ans , je te dis que si tu utilises les routines php ca marche plus facilement que de faire du ftp .....

    je te donne la routine de transfert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(move_uploaded_file($_FILES['fichier_source']['tmp_name'], '../../../../multimedia/'.$dossier_photos.'/toto.jpeg'))
    {
    //Le fichier a été uploadé correctement
    include("index.php");
    }
    else
    {
    //Erreur
    echo 'Erreur lors de la copie du fichier';
    }
     
    }

    tu lui donnes un fichier source et un repertoire cible et voila le tour est joué
    et en plus de ca il passe bien sur par un repertoire temporaire


    de + j'ai essayé chez free et ca marche .....

    a+

  18. #18
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Effectivement je vois pas pourquoi on va débattre vu que la solution que tu proposes n'est pas celle attendue par le posteur :
    Bonjour,
    voila j'essaye d'uploader un fichier sur un compte free depuis une page hébergée sur un autre FTP.
    Pour cela voila le script que j'ai trouvé après avoir fouiller un peu sur internet :
    Donc c'est de serveur à serveur, et non sur le seruveur lui même

  19. #19
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    lol oui, je veux faire de serveur à serveur... donc apparament la procédure "standard" ne fonctionne pas pour cela !

  20. #20
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Points : 101
    Points
    101
    Par défaut
    Personne ne peut m'aider ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [FTP] Sécurité des fonction ftp de php
    Par brunodim dans le forum Langage
    Réponses: 4
    Dernier message: 15/04/2008, 16h14
  2. [Upload] PHP upload par fonction ftp
    Par laxe13 dans le forum Langage
    Réponses: 5
    Dernier message: 31/01/2008, 12h08
  3. [FTP] problème openclick dans php
    Par Skeud007 dans le forum Langage
    Réponses: 18
    Dernier message: 04/07/2006, 19h36
  4. [FTP] Pb affichage page PHP
    Par issamaziz dans le forum Langage
    Réponses: 4
    Dernier message: 08/05/2006, 23h00
  5. [FTP] fonction ftp_chmod ou alternative ?
    Par arnoweb dans le forum Langage
    Réponses: 9
    Dernier message: 30/01/2006, 17h09

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