[PHP] Uploader sur un serveur FTP => problème

Résolu
Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   -  
nonolenaufragé Messages postés 31 Statut Membre -
Salut à tous !

Je voudrais, en PHP, uploader automatiquement un fichier sur mon serveur FTP.
Voilà mon code :
$connect_id = ftp_connect('ftp.monserveur.com') or die ('Connexion FTP impossible !');

if (!@ftp_login($connect_id, 'login', 'password')) {
    echo 'Impossible de se logguer sur le serveur FTP !';
    }

if ($chemin) {
		if (!ftp_put($connect_id, "/html_docs/fichier.txt", "C:\mondossier\fichier.txt", FTP_ASCII)) {
			echo '<p class="rouge">!ERREUR! Les fichiers n\'ont pas pu être uploadés sur le serveur FTP !</p>';
		}
		else {
			echo '<p class="rouge">Les fichiers ont bien été uploadés sur le serveur FTP !</p>';
		}
		ftp_close($connect_id);
	}

Et voilà l'erreur qui est retournée par PHP :
Warning: ftp_put(): 3 is not a valid FTP Buffer resource in #### on line 55
Warning: ftp_close(): 3 is not a valid FTP Buffer resource in #### on line 61

Quelqu'un saurait-il où est mon erreur, svp, car là je ne sais plus quoi faire ! :-)

Merci beaucoup d'avance ! :)

A+ :)
  ___________________
  |__ .: Thom@s :. ___|

11 réponses

  1. ibou52 Messages postés 81 Statut Membre 60
     
    Bonjour vig2,
    dans le <form> mets y <FORM method="POST" ENCTYPE="multipart/form-data"> et tu essayes...
    4
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    Coommence par effectuer les échappements d'usage
    "C:\\mondossier\\fichier.txt"

    Johan
    The software said "Requires Windows98, Win2000, or better,
    So I installed Unix.
    1
  3. kalamit
     
    Tes fichiers se transferent ou pas ? Ton script est correct. Ca ressemble plus à un probleme de configuration du php.ini.

    Peut etre que le serveur est en mode debugg. Dans ce cas, mets des @ avant la fonction ftp_put et ftp_close.

    J'ai testé ton script et cela fonctionne (j'ai juste viré le if ($chemin) )

    Kalamit,
    Parle à ma culasse, mon carter est malade. :)
    1
  4. kalamit
     
    Salut Thomas
    Si tu me laisses un peu de temps, je vais regarder ca... :)

    Kalamit,
    Parle à ma culasse, mon carter est malade. :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678
     
    Salut à vous ! :-)

    Merci de vous pencher sur mon problème ! :)

    Pour Jisisv, j'ai fait comme tu as dit, merci :-)
    Pour Kala, vala ce qui se passe :
    J'ai fait comme tu as dit, j'ai mis des @ devant ftp_put et ftp_close et j'ai viré temporairement le if ($chemin) (mais avec le if le résultat est le même, de toute façon).
    Et là, je n'ai plus l'erreur PHP (3 is not a valid FTP Buffer resource) mais par contre ftp_put() retourne FALSE et les fichiers ne se transfèrent pas...

    Donc, je me suis posé quelques questions :
    1) Le 1er paramètre de ftp_put est correct, non ?

    2) Et le 2e paramètre est bien l'adresse du fichier distant ?
    (par ex, est-ce que c'est correct ?:
    "/home/html_docs/monlogin/dossier/fichier.txt")

    3) Et le 3e paramètre est bien le fichier local ?
    (par ex, est-ce que c'est correct ?:
    "C:\\mondossier\\monfichier.txt")

    4) Faut-il un \ d'échappement pour les / ?

    5) Peut-on spécifier le mode (passif ou actif) ? (ou est-ce seulement pour les logiciels clients FTP ?)

    6) Quels droits doit avoir le dossier distant dans lequel on transfère le fichier ? (fait-il impérativement un CHMOD 777 ?)

    7) Pourquoi ça marche pas ? ;-)))

    Merci beaucoup d'avance ! :)
      ___________________
      |__ .: Thom@s :. ___|
    0
  7. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678
     
    Resalut à tous !

    Alors voilà:
    J'ai mis maintenant directement
    ftp_put($connect_id, "/html_docs/monlogin/fichier.txt", "C:\\mondossier\\fichier.txt", FTP_BINARY);
    

    Et je me reçois une erreur PHP:
    Warning: ftp_put(): Unable to access C:\mondossier\fichier.txt  in /html_docs/monlogin/monfichierphp.php on line 45

    Quelqu'un aurait-il une idée, svp ? Parce que là je n'en peux plus ! J'ai tout essayé !... svp...

    Merci beaucoup d'avance ! :)

    A+ :)
      ___________________
      |__ .: Thom@s :. ___|
    0
  8. John NC
     
    Salut !

    Je voulais juste savoir, ca te sers à uploader un fichier d'un visiteur ? (par exemple, envoyer une image, un fichier divers pour le downloader comme pour des sites de script ou autre)
    Sinon je connais pas assez PHP pour t'aider, désolé.
    A+
    0
    1. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678
       
      Salut John !

      Ce script ne servisait qu'à moi, dans la partie "administration" de mon site. Elle servisait à uploader les logiciels que vais, j'espère, écrire, et autres fichiers :-)
      Voila :-)

      Sinon, est-ce quelqu'un aurait une idée pour mon problème, svp ?
      Merci beaucoup d'avance ! :)

      A+ :-)
        ___________________
        |__ .: Thom@s :. ___|
      0
  9. kalamit
     
    Salut Thomas.

    Je crois que tu n'as pas saisi exactement comment fonctionnait le ftp.
    Tu ne peux pas uploader un fichier présent sur TON disque dur par cette methode. Avec cette bibliotheque de fonction le client FTP se trouve sur ton serveur web et non sur ta machine perso.

    En fait, ce que tu fais, c'est un put d'un fichier présent sur ton serveur web sur un serveur FTP.

    Kalamit,
    Parle à ma culasse, mon carter est malade. :)
    0
    1. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678
       
      Salut Kala ! :-)

      Merci pour ta réponse :-)
      J'ai pas bien compris ce que tu as dit...

      En fait, ce que j'essaie de faire, c'est d'uplaoder un fichier qui est sur MON disque dur sur le serveur Web de mon hébergeur.
      Et je le fais par l'intermédiaire de cette page PHP que j'exécute en temps que visiteur :-)
      (je n'ai pas de logiciel serveur Web chez moi...)

      Et ce n'est pas possible ? N'est-ce pas à ça que sert la fonction FTP de PHP ?

      Merci :-)
      A+ :)
        ___________________
        |__ .: Thom@s :. ___|
      0
    2. kalamit
       
      Bah non ! Pas possible avec ftp !
      Le FTP est une application Client/Server. Jusque la, ok.

      Lorsque tu execute cette page php, ou est ton client ftp et ou est ton server ?
      Autrement dit, qui execute la fonction php ? Est ce ton browser ou le server php ?
      Tu suis mon raisonement ?

      En fait, le client c'est le server php, pas ton pc à la maison ! C'est pour ca que cela ne fonctionne pas !

      Kalamit,
      Parle à ma culasse, mon carter est malade. :)
      0
      1. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678 > kalamit
         
        Resalut Kala !

        Merci pour ta réponse :-) et ta patience :)

        Donc en fait, ça marcherait si le fichier à transférer était sur la même machine que le serveur PHP; ou bien le serveur PHP sur mon ordi.

        C'est ça ? Est-ce que j'ai bien compris ? :-)

        Merci Kala ! :)
        A+ :)
          ___________________
          |__ .: Thom@s :. ___|
        0
      2. kalamit > kalamit
         
        Oui, si tu veux...
        Pour résumer, les fonctions ftp de php te permette de transiter des fichiers entre un serveur FTP et ton espace web chez ton hebergeur.

        Une solution à ton probleme serait de mettre un serveur FTP sur ta machine perso et de faire des get sur le serveur web.

        Kalamit,
        Parle à ma culasse, mon carter est malade. :)
        0
      3. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678 > kalamit
         
        OK, merci Kala ! :)
          ___________________
          |__ .: Thom@s :. ___|
        0
  10. John NC
     
    Ou aussi d'heberger le tout sur ta machine lol.
    0
    1. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678
       
      :-)
        ___________________
        |__ .: Thom@s :. ___|
      0
    2. Thom@s Messages postés 2647 Date d'inscription   Statut Membre Dernière intervention   678
       
      Encore faut-il le pouvoir :-)
        ___________________
        |__ .: Thom@s :. ___|
      0
  11. vig2
     
    Bonjour,
    j ai un probleme avec un formulaire d'upload de fichier.
    J ai beau enlever les elements les plus compliques de mon script, je trouve toujours le meme probleme.
    J ai simplifier au maximum mon probleme et si jamais quelqu'un sait pourquoi ca ne marche pas, ca serait sympa de m'aider.
    Le resultat de ce script est systematiquement le meme, il m'envoie toujours "ya pas de code" , que j'inserer un fichier ou non...
    Merci de votre aide:

    <body>
    <form id="form1" name="form1" method="post" action="">
    <table>
    <p>
    <tr><td></td>
    <td>
    <INPUT type='hidden' name='MAX_FILE_SIZE' VALUE=2048>
    <input type='file' name='photo' size='10'><br>
    </td></tr>
    </p>
    <tr>
    <td>
    <input type="submit" name="Submit" value="Submit" />
    </td>
    </tr>
    </table>
    </form>
    <?php

    if(empty($_FILES["photo"]["name"]))
    {
    echo "ya pas de code";
    }
    else{
    echo "ya un code";
    }

    ?>
    </body>
    0
  12. nonolenaufragé Messages postés 31 Statut Membre 4
     
    Tu trouveras ton bonheur là-dedans ^^:

    https://openclassrooms.com/fr/

    Y'a des tutos pas à pas très complets sur xhtml et php.
    Ou alors je te passe un code à moi qui marche...
    0