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] upload de fichiers via PHP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut [FTP] upload de fichiers via PHP
    bonjour,

    j'essaie de faire une petite page pour uploader des fichiers lourds via ftp.

    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
     
    // test de connextion par ftp
                $connect_ok=false;
                $conn_id = ftp_connect(FTP_SERVER);
                $login_result = ftp_login($conn_id, FTP_USER, FTP_PASSWD);
     
                // check connection
                if ((!$conn_id) || (!$login_result))
                {
                   $messages[]="Impossible de se connecter au serveur ".FTP_SERVER;
                }
                else
                {
                   $messages[]="Connecté à ".FTP_SERVER." : Vous pouvez envoyer des fichiers par FTP";
                   $connect_ok=true;
                }
     
                //on envoi le fichier s'il y en a un
                if ($_POST['envoi_fichier'])
                {
                   ftp_chdir($conn_id, PREFIXE.FTPFILE_DIR);
     
                   $destination_file=$_FILES['le_fichier']['name'];
     
                   // upload the file
                   $upload = ftp_put($conn_id, $destination_file, $le_fichier, FTP_BINARY);
     
                   // check upload status
                   if (!$upload)
                   {
                      $messages[]="L'envoi du fichier a échoué. Veuillez recommencer";
                   }
                   else
                   {
                      $messages[]="L'envoi du fichier a été réalisée avec succès.<br>Informations sur le fichier (".$_FILES['le_fichier']['name']."-".$_FILES['le_fichier']['size']." octets)";
                   }
                }
     
     
                ftp_close($conn_id);
    dans la page en question
    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
     
    <form name="formulaire" method="post" action="{$script}?id_menu={$id_menu}&section=ftp&page=accueil" enctype="multipart/form-data">
       <input name="envoi_fichier" type="hidden" value="ok">
       <input type="hidden" name="MAX_FILE_SIZE" value="20000000" />
     
                <input type="hidden" name="action" value="enregistrer" />
                <table id="tableau">
                   <caption>
                   <tfoot id="bouton">
                      <td>
                  <a href="{$script}?id_menu={$id_menu}&section=documents&page=liste" class="btnnormal">
                   Retour
                </a>
                  <a id="atest" href="javascript:document.formulaire.submit();" class="btnnormal">
                   Envoyer le fichier par FTP
                </a>
     
                      </td>
                   </tfoot>
                   <tbody>
     
                     <tr class="{cycle values="l_sombre,"}">
                         <td>
     
                            <label for="le_fichier">Fichier à envoyer :</label>
                            <input type="file" name="le_fichier" />
     
                         </td>
                      </tr>
                   </tbody>
                </table>
     
    </form>
    ça marche pour des fichiers inférieurs à 2mo environ mais au dela, pas de messages d'erreurs mais soit le fichier est uploadé qu'en partie (c'est-à-dire que si on ouvre un pdf, on a un message d'acrobat comme quoi le fichier est corrompu) ou pas du tout.

    Dans le php_info, j'ai un POST_MAX_SIZE à 8M. D'ailleurs,est-ce que cela joue étant donné que je passe par le ftp ?

    J'ai essayé avec d'autres scripts PHP trouvé sur le net et c'est le même souci.

    Auriez-vous une idée ?

    par avance merci.

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    peut etre une limitation de ton hebergeur ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    je peux toujours poser la question mais je suis sur un serveur dédié.

    je ne sais pas si ça un rapport ou si ça peut aider mais en passant par un logiciel FTP comme filezilla, pas de problème.

  4. #4
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    hello,

    à vue de nez tu essayes d'envoyer un fichier de ton PC vers ton serveur dédié... non ?
    Et PHP tourne sur ce serveur dédié... tout comme le "serveur" FTP non ?

    Si c'est le cas, le transfert se fait via un formulaire d'upload HTTP (de ton navigateur vers Apache/PHP), puis à toi de placer via PHP le fichier au bon endroit sur la machine... mais aucunement besoin de FTP ici.
    Google is watching you !

  5. #5
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par Kioob
    hello,

    à vue de nez tu essayes d'envoyer un fichier de ton PC vers ton serveur dédié... non ?
    Et PHP tourne sur ce serveur dédié... tout comme le "serveur" FTP non ?

    Si c'est le cas, le transfert se fait via un formulaire d'upload HTTP (de ton navigateur vers Apache/PHP), puis à toi de placer via PHP le fichier au bon endroit sur la machine... mais aucunement besoin de FTP ici.
    Oui c'est cela, j'envoie un fichier de mon pc vers le serveur dédié. Par contre, je ne comprend pas tu écris que le ftp n'est pas nécessaire ici. Le but étant de profiter du protocole FTP qui me semble plus approprié pour transferer de gros fichiers (le nirvana serait de pouvoir passer des pdf de 20 mo).
    Pour moi, le composant html 'file' ne me sert qu'à indiquer au ftp où se trouve le fichier à uploader. Y a t il quelque chose à faire pour indiquer au script que ce transfert doit se faire par ftp et pas par le protocole http ?

    Merci pour vos réponses.

  6. #6
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    Citation Envoyé par r-zo
    Pour moi, le composant html 'file' ne me sert qu'à indiquer au ftp où se trouve le fichier à uploader. Y a t il quelque chose à faire pour indiquer au script que ce transfert doit se faire par ftp et pas par le protocole http ?
    Ce que tu essayes de faire est impossible. Le seul transfert possible depuis le navigateur du client est par HTML. Si tu veux envoyer via FTP utilise un client FTP
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    effectivement,
    ou alors tu vas devoir mettre apache et php sur ta machine, uploader ton fichier sur ta machine et ensuite l'envoyer en ftp via ton php sur celui de ton dédié
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  8. #8
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    OK.

    j'ai donc été induit en erreur par le nombreux scripts sur le net qui indiquent pouvoir faire du ftp par l'interface d'une page web.

    Merci pour vos réponses je suis fixé.

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

Discussions similaires

  1. Upload de fichier via FTP
    Par sami_c dans le forum Flex
    Réponses: 0
    Dernier message: 24/12/2009, 18h01
  2. Réponses: 4
    Dernier message: 22/02/2008, 12h43
  3. Impossibilité d'upload un fichier via FTP
    Par Griffith dans le forum Internet
    Réponses: 6
    Dernier message: 13/06/2007, 19h38
  4. Upload de fichier via FTP / OpenFileDialog
    Par Pokerstar dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/05/2007, 03h34
  5. [FTP] upload de fichier local via ftp
    Par fraizz dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 17h32

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