Hi
Um einen Download zu Resumen, mußt du die Größe an der du fortsetzen willst im Request im Range-Teil mitschicken.
mit der HTTP-Komponete von INDY geht das so
Quelltext
1:
| idhttp1.Request.ContentRangeStart:=dateigröße; |
Wenn du es anders machen willst, solltest du entweder irgendwo den Range-Start setzen können, oder du mußt manuell in den Header
Quelltext
1:
| Range: bytes=dateigröße- |
einfügen.
Aber nicht jeder Server unterstüzt das Resumen. Um zu Überprüfen, ob er wirklich ab der angegebenen Größe sendet und nicht ab Dateianfang, mußt du in der Antwort den Range-Teil prüfen.
Mit INDY ist das wieder einfach
Quelltext
1:
| idhttp1.Response.ContentRangeStart |
Dort steht ab welchen byte er zu dir schickt.
Am besten wäre natürlich, wenn man das in ein ONHeaderReceived-Event einbaut. Da mußt du aber wahrscheinlich selbst Hand anlegen.
Den Download-Fortschritt kannst du leicht mit den ONWork Event in der INDY-Komponente darstellen:
AWorkCount ist das bis jetzt Übertragenen
idhttp1.Response.ContentLength ist die Gesamtgröße des zu Übertragendem. Falls du den Download also fortsetzt, ist das nicht mehr die Dateigröße!