Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2007, 12h20   #1
Invité de passage
 
Inscription : mai 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 2
Points : 0
Points : 0
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!!
fraizz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 14h46   #2
Koo
Membre du Club
 
Avatar de Koo
 
Inscription : avril 2004
Messages : 76
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 76
Points : 69
Points : 69
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.
Koo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h13   #3
Invité de passage
 
Inscription : mai 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 2
Points : 0
Points : 0
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 :
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!!
fraizz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 17h32   #4
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
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 ...
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h34.


 
 
 
 
Partenaires

Hébergement Web