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 fichier local via ftp


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [FTP] upload de fichier local via ftp
    Bonjour!

    Je voulais savoir s'il était possible de faire un upload de fichier (des photos dans mon cas) situés en local sur le poste d'un utilisateur pour les charger sur un serveur!

    J'ai vu deux ou trois script qui apparement permettrai de le faire en passant par les fonction ftp_connect() puis ftp_login() pour se connecter au serveur, et enfin par la fonction ftp_nb_put() ou ftp_put() pour transférer le fichier.

    Quelqu'un m'a dit que ce n'était peut-être pas possible!
    Pourquoi ne pas passer par un upload html via un formulaire et un input de type file me direz vous? tous simplement parce que les données que je traite provienne d'un fichier chargé par l'utilisateur. Ce fichier contient les chemins locals des images a charger et parfois par centaines! :/ d'ou la petite difficulté que je rencontre... snif

    Si quelqu'un pouvait éclairer mes lanternes sur le ftp ca serai super sympa! merci d'avance!!

  2. #2
    Koo
    Koo est déconnecté
    Membre régulier Avatar de Koo
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 76
    Points : 84
    Points
    84
    Par défaut
    Bha par ftp ca doit être possible, y faut juste installer un serveur FTP sur la machine de réception des images si c'est pas déjà fait. Après c'est bien les fonctions que t'as dis, et puis au pire ya pleins de scripts tout faits.

    Je vois pas trop où est le problème.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Le site sur lequel je travaille est déja en ligne sur un serveur. J'ai testé ce petit bout de code afin de télécharger un fichier sur ce serveur :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
            $nom_hote = 'ipServeur'; 
            $num_port = 21; 
            $nom_utilisateur = 'users'; 
            $mot_passe = 'xxxxxxxxx'; 
            //on se connecte au serveur 
            $conn = ftp_connect($nom_hote, $num_port); 
            if($conn){ 
             echo "connexion réussi <br />"; 
             //on se logue 
             if(ftp_login($conn, $nom_utilisateur, $mot_passe)){ 
              echo "login réussi <br />"; 
              //Accès au répertoire 'Oeuvres' 
              if(ftp_chdir($conn, 'Oeuvres')){ 
               echo "répertoire courant -> ../Oeuvres <br />"; 
              } 
              else 
               echo "echec changement repertoire <br />"; 
     
              //on créé un nouveau répertoire temporaire s'il n'éxiste pas déja 
              $repTemp = "../Oeuvres/temp"; 
              if(!file_exists($rerTemp) && !is_dir($repTemp)){ 
               if(ftp_mkdir($id_connexion, $nomrep)) 
                echo "création du dossier temp réussi <br />"; 
               else 
                echo "echec création dossier temp <br />"; 
              } 
              else 
               echo "le dossier temp existe déja <br />"; 
     
              if(ftp_chdir($conn, 'temp')){ 
               echo "répertoire courant -> ../Oeuvres/temp <br />"; 
              } 
              else 
               echo "echec changement repertoire <br />"; 
     
              //mettre ici le chemin d'un fichier local 
              $fichierLocal = "C://..../image.jpg"; 
     
              //on récupère l'extension du fichier 
              $extension = substr(basename($fichier_local), strrpos(basename($fichier_local),".")); 
              $fichierDistant = 'unephoto'.$extension; 
     
              $ret = ftp_nb_put($conn,$fichierDistant,$fichierLocal,FTP_BINARY); 
              while($ret == FTP_MOREDATA){ 
                  echo "Chargement réussi! <br />";   
                  $ret = ftp_nb_continue($conn); 
              } 
              if ($ret != FTP_FINISHED){   
                  echo "Il y a eu un problème lors du chargement du fichier...";  
              } 
     
             } 
             else{ 
              echo "login echec <br />"; 
             } 
             ftp_quit($conn); 
            } 
            else 
             echo "connexion echec <br />";

    Bilan de l'opération :
    ftp_connect -> ok
    ftp_login -> ok
    ftp_chdir -> ok
    ftp_nb_put -> marche pas ( j'ai aussi testé ftp_put mais idem =( )

    J'arrive donc a me connecter au serveur, à créer un dossier ou je veut... Mais pour transférer un fichier depuis son adresse local, ca marche tt de suite moins bien... snif
    En fait je ne m'y connais pas grand chose en ftp, et certain mon dit que ce que je voulai faire n'était pas possible de cette manière...

    Qe'en penses tu??

    Merci!!

  4. #4
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    je crois que tu mélanges tout !

    1) les fonctions ftp de php, ça s'éxécute sur le serveur php, donc ça permet de faire du transfert de serveur à serveur (entre le serveur web et le serveur ftp), le cient n'a rien a voir la-dedans !

    2) si tu veux faire du transfert ftp entre un client et un serveur ftp, le clietn doit etre connecté directement sur ledit serveur ftp, et dans ce cas-là c'est ton serveur web qui n'a rien a faire la-dedans (il ne peut pas forcer le client à se connecter au serveur ftp), il suffit que le client ait un client ftp.

    3) si tu veux - depuis une page web - inviter l'utilisateur à se connecter à un serveur ftp tiers pour transferer des fichiers, je pense que le mieux est d'y inclure un applet (java) de client ftp mais là ca n'est plus du php ...

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/05/2007, 15h11
  2. Réponses: 7
    Dernier message: 30/05/2006, 14h08
  3. [FTP]upload de fichier
    Par ehmppowa dans le forum Entrée/Sortie
    Réponses: 12
    Dernier message: 26/01/2006, 13h57
  4. [FTP] upload de fichiers via PHP
    Par r-zo dans le forum Langage
    Réponses: 7
    Dernier message: 02/01/2006, 15h29
  5. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 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