Telecharger une partie d'un fichier

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 - 19 juin 2005 à 12:50
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 - 19 juin 2005 à 22:10
Bonjour à tous,

Dans le cadre de mon application, je voudrais pouvoir télécharger une partie d'un fichier présent sur un serveur HTTP.

Par exemple, je voudrais pouvoir récupérer les Bytes 1 à 100 puis ceux de 1000 à 1500.

Comment puis-je faire en sachant que je voudrais pouvoir utiliser les composants Indy (TIdHTTPClient par exemple)



Merci d'avance de vos réponses.

Florent


Si tu ne te plantes pas ......
tu ne poussera jamais

4 réponses

cedricbi Messages postés 185 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 mars 2011
19 juin 2005 à 14:46
Pour dire à partir de quel octet on démarre : IdHTTP.Request.ContentRangeStart := Debut et pour finir IdHTTP.Request.ContentRangeEnd := Fin
et ensuite on télécharge !


<HR>

Le plus dur dans un programme c'est de savoir pourquoi il marche !
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
19 juin 2005 à 15:20
Oui, mais il faut savoir à l'avance quel est la taille du fichier puisque je veux prendre les 150 derniers kilo-octets.

Comment fait-on cela ?



Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
19 juin 2005 à 21:24
Tu peux obtenir la taille du fichier au début du téléchargement, mais je ne vois pas comment le faire avant...

Tu peux toujours lancer le premier téléchargement pour obtenir la
taille, l'annuler, et enfin lancer un deuxième téléchargement pour ne
télécharger que ce dont tu as besoin... Cela n'est pas très
"propre" comme technique, mais je n'en vois pas d'autre, désolé...



var

TailleFichier : integer;



procedure TForm1.IdHTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);

begin

if AWorkMode wmRead then TailleFichier : AWorkCountMax;

end;



@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">





N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !




0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
19 juin 2005 à 22:10
Sinon, il existe aussi une propriété Response dans le TIdHTTPClient.

C'est une classe qui contient aussi ContentLength, peut être que cette propriété est rensegnée par une requette.



Merci déjà pour la premiere réponse. Je la validerai plus pour que d'autres viennent répondre.



@ ++

Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
0
Rejoignez-nous