[Résolu] Comment envoyer un fichier sur un serveur (client ftp)

Comment envoyer un fichier sur un serveur (client ftp) [Résolu] - C - Programmation

Marsh Posté le 18-01-2007 à 10:53:45    

Salut,
 
Je veux envoyer des fichiers a un serveur, un peu comme le fait Filezilla. :p
exemple de fonction:

Code :
  1. Envoyerfichier(FILE* fichier, char* adresse_de_lespace_dhebergement);


pareil pour la reception...
 
Merci pour votre aide.
 

Message cité 1 fois
Message édité par bad___day le 19-01-2007 à 14:23:37
Reply

Marsh Posté le 18-01-2007 à 10:53:45   

Reply

Marsh Posté le 18-01-2007 à 11:02:39    

bad___day a écrit :

Je veux envoyer des fichiers a un serveur, un peu comme le fait Filezilla. :p


En FTP, donc. Je conseille libcurl, qui est fait pour ça (il y a d'ailleurs de fortes chances que FileZilla utilise cette bibliothèque).
 
http://curl.haxx.se/


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 18-01-2007 à 11:12:10    

Emmanuel Delahaye a écrit :

En FTP, donc. Je conseille libcurl, qui est fait pour ça (il y a d'ailleurs de fortes chances que FileZilla utilise cette bibliothèque).
http://curl.haxx.se/


Oui, j'ai déja vu ce site mais avec la doc en anglais je glaire un peut trop.

Message cité 1 fois
Message édité par bad___day le 18-01-2007 à 11:28:18
Reply

Marsh Posté le 18-01-2007 à 11:32:51    

bad___day a écrit :

Oui, j'ai déja vu ce site mais avec la doc en anglais je glaire un peut trop.


Il faut t'y mettre. Lire l'anglais, c'est simple et c'est indispensable.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 18-01-2007 à 11:41:57    

Y a t il un moyen de faire avec les sockets ?
 

Reply

Marsh Posté le 18-01-2007 à 11:56:03    

bad___day a écrit :

Y a t il un moyen de faire avec les sockets ?


Tu veux réimplémeter FTP avec des sockets ? Comme tu veux, mais c'est pas rien...
 
http://www.faqs.org/rfcs/rfc959.html
 
Là, tu va savoir ce que veux dire "avoir du mal avec l'anglais..."
 
J'ai trouvé une traduction. Lire les réserves...
 
http://abcdrfc.free.fr/rfc-vf/rfc959.html


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 18-01-2007 à 12:13:46    

Emmanuel Delahaye a écrit :

Tu veux réimplémeter FTP avec des sockets ? Comme tu veux, mais c'est pas rien...
http://abcdrfc.free.fr/rfc-vf/rfc959.html


Merci pour ton aide..  
Mais ... ehu ... , ça c'est pour tout réinventé lol, moi veut faire un simple transfert..
 

Reply

Marsh Posté le 18-01-2007 à 12:44:33    

bad___day a écrit :

Merci pour ton aide..  
Mais ... ehu ... , ça c'est pour tout réinventé lol, moi veut faire un simple transfert..


C'est toi qui a dit 'comme FileZilla'. Maintenant, si tu veux faire autrement, tu peux, mais il faut que l'application du serveur soit compatible.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 18-01-2007 à 13:05:51    

Emmanuel Delahaye a écrit :

C'est toi qui a dit 'comme FileZilla' comme le fait Filezilla :).
Maintenant, si tu veux faire autrement, tu peux, mais il faut que l'application du serveur soit compatible.


Il n y a pas d'application serveur, je veut par exemple uploader un fichier sur mon site (le serveur).

 

J'ai trouvé un un code qui utilise la lib Wininet:

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <Wininet.h>
  5. int main(void)
  6. {
  7.     HINTERNET hsession, hftp;
  8.     hsession = InternetOpen ("monProg", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
  9.     if(hsession == NULL)
  10.     {
  11.         printf("erreur connection\n" );
  12.         return 1;
  13.     }
  14.     hftp = InternetConnect(hsession, "monserveur ou adresse IP", INTERNET_DEFAULT_FTP_PORT, "login", "password", INTERNET_SERVICE_FTP, 0, 0);
  15.     if(hftp)
  16.     {
  17.         FtpPutFile(hftp, "fichier.txt", "monfichiersurleserveur.txt", FTP_TRANSFER_TYPE_ASCII, 0);
  18.         InternetCloseHandle(hftp);
  19.     }
  20.     else printf("erreur connection FTP\n" );
  21.     InternetCloseHandle(hsession);
  22.     system("pause" );
  23.     return 0;
  24. }
 

ça compile trés bien, mais ca ne fait pas ce que je veut, je ne sais pas pourquoi ?

Message cité 1 fois
Message édité par bad___day le 18-01-2007 à 13:06:08
Reply

Marsh Posté le 18-01-2007 à 13:21:53    

bad___day a écrit :

Il n y a pas d'application serveur,


Arf, arf... le serveur tourne dans le vide... Il n'attend rien, il n'émet rien...

 
Citation :

je veut par exemple uploader un fichier sur mon site (le serveur).

 

Ben oui. Et pour ça, il y a une application FTP (server) qui est activée sur le serveur... (GNU/Linux : dftp : Daemon FTP).

 

Si on veut faire de a programmation réseau, en plus de la maitrise du langage C, le minimum est de savoir un peu comment fonctionne les aplications réseau... Simple bon sens élémentaire, comme souvent...)

Citation :

J'ai trouvé un un code qui utilise la lib Wininet:


C'est bien. Tu n'as plus qu'à te plonger dans MSDN en espérant y trouver le détail de chaque fonction de ce code, et comment et pourquoi elle s'enchainent.
.


Message édité par Emmanuel Delahaye le 18-01-2007 à 13:23:21

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 18-01-2007 à 13:21:53   

Reply

Marsh Posté le 18-01-2007 à 15:41:10    

En plus je n'avais pas remarqué que tu avais participé au topique où j'ai récupérer ce code source, lol  :D
http://www.developpez.net/forums/a [...] 92203.html
 
EDIT:
En faite le code source que j'ai donné plus haut marche très bien, C'est moi qui me suis trompé dans le nom du serveur.


Message édité par bad___day le 18-01-2007 à 18:45:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed