Tom's Guide > Forum > Programmation > Telecharger un fichier du web en C++
Mot :    Pseudo :           
 

Salut,

Je suis en train de creer un program en visual C++ 2005.
Le prog doit, lorsqu'on click sur un bouton, telecharger un fichier d'internet.
Quelqu'un connait une commande qui peux m'aider.
Ce qui serait niquel ca serait genre un fopen("www.monurl.com/monfichier.txt" )

et ensuite je voudrais savoir comment enregistrer ce fichier dans le dossier "c:/mondossier/"

Ca a l'air pas trop compliqué, mais je trouve pas.
Ca fait deux heure que je retourne la bible de C++ 2005. Il est nul ce bouquin, ou alors c'est moi qui sait pas le lire.

Si quelqu'un peux me donner un coup de main ca serait super top mega cool de sa part.

Merci

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Je ne suis pas trop sûr mais je pense que tu vas avoir besoin d'une library réseau.

Winpcap , ou dans ce genre là.

Répondre à Sephiroth_SaMa

Ouais mais non, ca a l'air trop compliqué, en plus il faut wincap sur toutes les machines sur lesquel le prog va tourner.
Merci quand meme pour ton aide.

Y'a pas un outil plus simple ?

Répondre à duteux

Ton programme doit télécharger le fichier dans le cadre d'une mise à jour?

Répondre à Sephiroth_SaMa

Oui, c'est exactement ca.

Répondre à duteux

Malheureusement je ne vois pas d'autres solution que d'utiliser une library réseau , ce que tu demandes nécessite une gestion de protocoles réseau.

Mais il doit bien avoir une library réseau qui ne nécessite pas l'installation d'un package particulier pour tourner.


Message édité par Sephiroth_SaMa le 02-04-2007 à 17:17:51
Répondre à Sephiroth_SaMa

Ben je pensais a un truc genre ShellExecute("url" ).
Tu penses que ca pourrait marcher ?
Mais le soucis, c'est que ca ne sera pas automatique et qu'il faudra choisir le dossier pour enregistrer le fichier (c'est trop dure pour les utilisateurs finaux)
Encore merci pour tes reponses. J'vais essayer de m'orienter vers ce qu tu m'as dit.
Bon ben allez j'continue mes recherches alors ...

Répondre à duteux

Salut,

Tu peux tenté de dire à ton utilisateur qu'une nouvelle version est dispo, avant de l'envoyé sur ton site avec :

Code :
  1. system("start http://host.com/" );


Ou de passer par le FTP en passant un fichier de commandes :

Code :
  1. system("ftp host.com < cmd" );


(cmd étant le fichier de commandes)

Sinon tu peux passer par la libraire libcurl qui est pas mal, en prenant la source d'exemple, elle est facile à utiliser ;)

Répondre à firelink

Merci Firelink,

C'est nikel comme code.
C'est possible d'avoir exactement la meme chose sans voir l'invite de command (shell) apparaitre.
Comme avec la fonction ShellExecute()
ca fait depuis ce matin que je buche dessus, et pas moyen ...
j'ai ecrit ca:

ShellExecute(NULL,"ftp -i -s:ftp_get.txt","ftp_get.txt",NULL,NULL,NULL);

avec dans l fichier ftp_get.txt :

open ftp.serveur.com 21
username
password
binary
get webfile.ext computerfile.ext
close
quit

Je suis en train de m'arracher les derniers cheveux qui sont sur ma tete.

Répondre à duteux

Si tu veux que ça soit totalement invisible, faut passer par LibCurl.
http://curl.haxx.se/

Répondre à firelink

C'est bon, j'ai trouvé la solution qui tue.
Faut utiliser WinInet.lib
Une librairie de windows. Pas besoin d'ajouter des dll supplementaire ni composant COM.
Trés facile d'utilisation.
Je post le code dés que j'ai le temps.

Répondre à duteux

ouai mais c'est pas portable et ce seras jamais aussi puissant que QT

un example ici


Message édité par defaultuser le 04-04-2007 à 11:07:49
Répondre à defaultuser

Si si,
C'est 100% portable.
C'est quoi QT ?

Répondre à duteux

Pardon j'avais pas vu le lien.
Ouais c'est clair que ca a l'air bien QT.
Je l'ai pas testé, mais ca semble simple.
Merci defaultuser.
je n'oublie pas de poster trés bientot les codes WinInet.
Trés peu de ligne de code, et ca a l'air bien puissant.
En tout cas c'est trés rapide d'execution.

Répondre à duteux
Tom's Guide > Forum > Programmation > Telecharger un fichier du web en C++
Aller à :

Il y a 2118 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens