Datei herunterladen

medusaman

Grünschnabel
Wie kann ich in Delphi eine Datei über http herunter laden ? gibts dafür eigene Funktionen in Delphi oder sogar eine extra komponente ?

Kennt jemand irgendwelche seiten wo beschrieben wird wie es geht oder weiß es jemand ?
 
Habe mich jetzt doch dazu bewogen eine neuere Delphi Version mit FastNET Http-komponente zu installieren. Das normale runterladen klappt schon, also nmhttp.get(url) und dann den inhalt des von nmhttp.body in eine datei schreiben.
Wie mache ich das jetzt wenn ich eine größere Datei herunterladen will, dann speichert er doch die ganze datei erstmal in body, also in den RAM. wie kann ich das machen das er die Datei alle 100kb oder so speichert ?

Danke schon mal im vorraus
 
Hallo,

du müsstest überprüfen, wie groß die gesamte Datei ist und dann ständig wie viel bereits heruntergeladen ist. Dann müsstest du einen bestimmten Teil des Speichers auslesen und dann schreiben.
Dein Vorhaben ist jedoch m.E. ziemlich schwer, da du in die Speicherroutinen der HTTP-Komponente eingreifen müsstest.

==> Wird nichts.
 
ich weiss nicht, ob dir das irgendwie weiterhilft - aber es gibt auch die möglichkeit, eine datei aus dem internet in einen stream zu laden und den dann nach und nach zu speichern.
dazu müsstest du nur mit einer zählervariable jeweils bis 100kb schleifen durchlaufen und irgendwie speichern. sollte funktionieren, wenns trotzdem probleme gibt, werd ich mir das selbst nochmal ansehen.


regards,
wicked
 
is glaube ich nicht nötig, ich habe in der Dokumentation zu der NMHTTP-komponente gelesen das wenn man 'InputFileMode' auf TRUE setzt und dann in 'BODY' einen Dateinamen angibt, die NMHTTP-komponente auch große dateien nach und nach in die Datei schreibt. Das reicht für mein Projekt vollkommen aus !
Was du meinst ist vieleicht ganz nützlich wenn ich auch noch resuming unterstützen will.
 
ICS

die beste internetkomponenten suite ist ics.

ICS - Internet Component Suite
==============================
(Aka FPIETTE's Components)

download unter ICS
 
Zurück