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 :

[Upload] Formulaire puis Upload via FTP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut [Upload] Formulaire puis Upload via FTP
    Salut à tous,

    Je souhaite permettre aux utilisateurs de mon site d'uploader des fichiers sur le serveur de mon site en utilisant PHP et un protocole FTP. (j'avais précédemment essayé de le faire sans FTP, mais j'avais trop de pb dus à la taille de mes fichiers (environ 10 à 12 Mo))

    J'ai donc créé le script suivant, qui récupère un fichier depuis un formulaire http, qui se connecte à mon serveur ftp (aucun pb pour la connection) mais après je ne parviens pas à uploader mon fichier, j'obtiens l'erreur suivante:

    Warning: ftp_put(): error opening in /home/webadmin/iaaweb.org/html/iaa/APPLICATION/ACTA/UploadFile.php on line 64


    voici mon script:
    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
    $ftp_server="ftp.iaaweb.org";
      $ftp_user_name="vote";
      $ftp_user_pass="*******";
     
      //Selection of the file to copy:
     
      $source_file=$fichier['tmp_name'];
      $destination_file="ARTICLES/"."MyArticle";
     
      // Create the connection to the FTP
      $conn_id = ftp_connect("$ftp_server");
     
      // Authentification with name and password
      $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
     
      // Verification of the connection
      if ((!$conn_id) || (!$login_result)) {
              echo "FTP connexion failed !";
              echo "Try to connect to $ftp_server with $ftp_user_name";
              die;
          } else {
              echo "Connected to  $ftp_server, with $ftp_user_name";
          }
     
      // Upload of the file
      $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_ASCII);
     
      // Verification of the upload
      if (!$upload) {
              echo "Upload failed!";
          } else {
              echo "Upload of $source_file on $ftp_server as $destination_file";
          }
     
      // close the connection FTP.
      ftp_quit($conn_id);
    Mes questions sont donc:

    * Est ce que j'utilise la bonne méthode pour récupérer le fichier ?
    * D'où vient le message d'erreur, sachant que le répertoire "ARTICLES" existe déjà sur le serveur et qu'il est bien ouvert en écriture ?

    Merci d'avance pour votre aide

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Pour uploader un fichier, le plus simple est d'utiliser un simple formulaire HTML. Pas besoin du protocole FTP.
    Fais gaffe, le formulaire doit avoir la propriété enctype suivante :
    <form method="post" action="<?php echo basename(__FILE__); ?>" enctype="multipart/form-data">
    Côté PHP, à la réception du formulaire, tu peux utiliser le tableau $_FILES et les fonctions is_uploaded_file() et move_ploaded_files(). Assure-toi que le répertoire de destination peut être modifié par tout le monde (chmod 777).

    Renseigne-toi sur cet enctype, il ya un ou deux trucs de plus à savoir.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Salut,

    En fait j'avais abandonné l'idée de le faire par un simple formulaire php car j'obtenais systématiquement un message d'erreur au dessus de 500Ko, j'ai un autre post sur le forum à ce sujet et nous n'avons jamais trouver une réponse à mon problème.

    Si tu as une idée pour résoudre ce pb et ne pas passer par un ftp, je suis preneur !

    Merci d'avance

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Si tu pouvais m'éviter de chercher cet autre sujet, ce ne serait pas plus mal.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Salut,

    Voici le lien vers mon précédent post :

    http://www.developpez.net/forums/sho...=158837&page=2

    Merci pour ton aide,

    A+

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Le problème ici est que si ton formulaire HTML ne peut pas envoyer les fichiers, alors la connexion en FTP devient inutile.
    HTML et PHP ne sont pas adaptés pour envoyer de gros fichiers. Il vaut mieux se tourner vers une applet JAVA, par exemple.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Salut,

    merci pour ta réponse, est ce que tu pourrais stp me détailler un peu plus la marche à suivre ou m'orienter vers un site la détaillant, car je ne connais absolument pas le java.

    Merci d'avance,
    A+

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Non, j n'en sais pas davantage. Je sais qu'il existe des applets JAVA permettant d'uploader sur un FTP, voilà tout.
    Demande sur le forum JAVA après avoir regardé dans leur FAQ et sources.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Ok pour le java, je chercherai si je ne parviens vraiment pas à faire autrement.

    A l'origine je ne voulais pas du tout passer par une connexion ftp pour faire mon upload. Pourrais-tu stp regarder dans mon premier post (tu as le lien dans mon précédent message) pour voir si tu as une d'idée d'où vient le pb et peut être ainsi éviter de passer par une connexion ftp...

    Merci d'avance !

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Vraiment aucune idée pour cet upload qui plante?

    Merci

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    J'ai déjà ecris le meme type de code....mon probleme c'etais que je perdais immédiatement la connexion au serveur ftp.

    Dans mon code il y a ftp_pasv( $ftpconnexion, true);....c'est la seule différence avec le tien.

    Sinon,peut-tu me dire à quoi correpond la ligne 64 du message d'erreur ?

  12. #12
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Tu l'as tire d'où ta variable $fichier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $source_file=$fichier['tmp_name'];

Discussions similaires

  1. [Upload] Formulaire et upload
    Par mirabelle dans le forum Langage
    Réponses: 3
    Dernier message: 14/09/2007, 22h20
  2. [FTP] upload de fichier local via ftp
    Par fraizz dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 17h32
  3. [Upload] Upload de plusieurs fichiers via formulaire
    Par seb67110 dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2007, 11h55

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