begin process at 2010 02 10 01:48:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Réseau & Internet

 > 

Internet

 > 

Téléchargement de plusieurs fichiers avec IdHTTP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Téléchargement de plusieurs fichiers avec IdHTTP

vendredi 8 août 2008 à 17:51:53 | Téléchargement de plusieurs fichiers avec IdHTTP

JeremyLecouvert

Salut!

Je suis actuelle ment sur une appli qui permet de downloader des fichiers. J'utilise un TIdHTTP, ça donne à peu près ça (j'élague la construction de la String!):

function TForm1.GetFichier(const URL, FileName : string): Boolean;
var
  idHttp: TIdHTTP;
  Stream: TFileStream;
begin
  Stream := TFileStream.Create(FileName, fmCreate or fmShareExclusive);
  try
    idHttp := TIdHTTP.Create(nil);
    try
      idHttp.Get(URL, Stream);
    finally
      idHttp.Free;
    end;
    Result := True;
  finally
    Stream.Free;
  end;
end;

...jusque là rien d'extraordinaire! Le souci c'est que je voudrais lancer plusieurs téléchargements simultanés.
J'appelle ma fonction dans une boucle. Je pensais jouer sur les évènements IdHTTPWorkBegin, ou qq chose dans le genre, mais ça changera rien puisque je ne sors de ma fonction qu'une fois le download terminé.

Quelqu'un aurait-il une solution (si possible en évitant le multithread)?

Merci d'avance.
vendredi 8 août 2008 à 20:54:48 | Re : Téléchargement de plusieurs fichiers avec IdHTTP

florenth

Membre Club
Salut !

"évitant le multithread"
=> impossible, du moins avec Indy, ces composants étant "bloquants".
Il te faudra donc créer un thread par fichier à télécharger.

Attention à la mise à jour de l'affichage, tout doit être fait dans les règles de l'art, sinon, malgré le fait que ça compilera, tu le ressentira au niveau des performances et ça risque même de planter.

Voila.
A+
Flo

PS: je vois que tu as bien pensé à utiliser les blocs try...finally mais pour le moment ton Result ne sert à rien puisque True est renvoyé même si idHttp.Get(...) plante.

Ressources Delphi, sources, tutoriaux, actu, ...: www.mx-dev.net [ Lien ]
lundi 11 août 2008 à 11:46:17 | Re : Téléchargement de plusieurs fichiers avec IdHTTP

JeremyLecouvert

'lut!

"...mais pour le moment ton Result ne sert à rien" => je sais, je l'ai mis là en vue d'une prochaine modif..

Donc Flo, si j'ai bien compris ("du moins avec Indy"), il y a un moyen de le faire avec d'autres composants? Tu penses peut-être au TWebBrowser?  J'ai déjà essayé sur une autre appli (qui ne faisait pas de downloads), et j'ai eu des résultats assez bizarres dans le traitement en boucle de formulaires. Je remplissais mes champs une fois la page chargée; en debug pas de pb, mais en fonctionnement normal la page n'atteignait jamais l'état READYSTATE_COMPLETE... j'ai peut-être loupé qq chose sur le fonctionnement du composant!

En tout cas, si tu as des tuyaux en ce qui concerne mes pb de downloads, je suis preneur.

Re-merci.
@+

PS: "Attention à la mise à jour de l'affichage" => je suppose que tu parles des Application.ProcessMessages à mettre dans le prog pour ne pas figer l'affichage?


Cette discussion est classée dans : end, fichiers, stream, tidhttp, idhttp


Répondre à ce message

Sujets en rapport avec ce message

Liste des fichiers d'un repertoire [ par fallen angels ] Bonjour à tous,J'ai installé Delphi 6 il y 2 jours pour enfin (essayer) de développer des petits softs et ca commence mal ;o)J'ai quand même compris c Utilisation des pointeurs [ par XgaletteX ] Bonjour, j'ai un pb avec une procedure mais je vois dou vien celui-ci, voici mon code:     New(AFile);     with AFile^ do     begin Probleme de stream [ par ewertheimer ] Voila en faites je suis en train de creer un logiciel ou on charge des image dans un TImage et l'on envoie ensuite la photo par stream. Mon probleme : Deplacer des fichiers [ par gpwebmaster ] Y'a t-il une fonction pour deplacer toutles fichiers d'un repertoire à un autre, parce qu'avec la fonction MoveFile ou MoveFileEx je ne peux déplcer q Utilisation de TIdNTLMAuthentication avec idhttp [ par coinki ] Quelqu'un aurait-il déjà utilisé la classe TIdNTLMAuthentication pour l'authententification sur un proxy avec le composant idhttp? Merci un handle capricieux ! [ par askil2000 ] Bonjour, tout le monde ... C'est encore moi, je pose beaucoup de questions ses temps-ci mais toujours pour la bonne cause. Je voulais remercier Master Enregistrer et ouvrir "détails" [ par darky93 ] J’ai Réussit à trouver un programme dans lequel il y avait Enregistrer et Ouvrir  mais pour une StringGrid. Je l’ai bidouillé  et j’ai "regroupé" mes Interaction Windows Explorer/mon Appli [ par MAURICIO ] Salut tout le monde, je voudrais après avoir seleccionné des fichiers/répertoires ds Windows Explorer, ouvrir le popMenu de Windows Explorer et y mont créeation de composant [ par mathieu57100 ] bonjour,j'ai suivis un tuto pour la création de composant, un label qui ressemble à un lien hypertexte et qui lance soit le navigateur par défaut soit 1 er demarrage [ par burnouze ] bonjour j ai fait un ptit prg qui cré des 2 dossiers puis a l'iterieur des dossiers il cré des .txt et au tout premier demarrage si les fichiers n'e


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales