Entwickler-Ecke
Internet / Netzwerk - idHttp - Fehler beim Download
Regan - Mo 05.06.06 20:30
Titel: idHttp - Fehler beim Download
Hallo,
ich möchte mit einer idhttp Komponente eine Datei herunterladen. Vielleicht geht das auch einfacher als wie ich das hier habe. Den Quelltext habe ich auch nur übernommen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| var BytesKopiert, BytesInsgesamt : int64; lStream: TFileStream; begin
Status.Caption := ''; BytesKopiert := 0; Progress.Position := 0;
Status.Caption := 'Prüfe Header';
IdHTTP1.Head(Edit1.Text); BytesInsgesamt := IdHTTP1.Response.ContentLength; if BytesInsgesamt = -1 then begin Status.Caption := 'Normalles herunterladen'; Status.Caption := 'Erstelle Datei'; lStream:=TFileStream.Create(Edit2.Text, fmCreate or fmShareDenyNone); try idHTTP1.Get(Edit1.Text, lStream); finally if Assigned(lStream) then lStream.Free; end; Status.Caption := 'Fertig'; SpeedStatus.caption := 'Fertig'; exit; end; Progress.Max := BytesInsgesamt; Status.Caption := 'Erstelle Datei'; lStream:=TFileStream.Create(Edit2.Text, fmCreate or fmShareDenyNone); lStream.Position := 0; try repeat Application.ProcessMessages; IdHTTP1.Request.ContentRangeStart := BytesKopiert; if (BytesInsgesamt-BytesKopiert) > cFileSplitSize then begin IdHTTP1.Request.ContentRangeEnd := BytesKopiert+cFileSplitSize-1; end else IdHTTP1.Request.ContentRangeEnd := BytesInsgesamt; Application.ProcessMessages; IdHTTP1.Get(Edit1.Text, lStream); Progress.Position := BytesKopiert; Status.Caption := GetSizeName(BytesKopiert)+'/'+GetSizeName(BytesInsgesamt); BytesKopiert := BytesKopiert+cFileSplitSize; until (BytesKopiert >= BytesInsgesamt); finally if Assigned(lStream) then lStream.Free; end; Status.Caption := 'Fertig'; SpeedStatus.caption := 'Fertig'; Progress.Position := 100; |
dabei kommt aber immer der fehler:
HTTP/1.1 302 Found
Woran könnte das liegen?
Fighter#1 - Di 06.06.06 08:14
Du weißt, du kannst auch sehr einfach mit URLMON und UrlDownloadToFile dateien runterladen IMHO viel geschickter, als mit den Indys rumzuwurschteln.
Es könnte auch dran liegen das die caption des Labels falsch geschrieben ist, Normalles Runterladen :zwinker:
matze - Di 06.06.06 09:02
setz mal die Eigenschaft HandleRedirectsauf TRUE.
Regan - Di 06.06.06 15:05
Fighter#1 hat folgendes geschrieben: |
| Du weißt, du kannst auch sehr einfach mit URLMON und UrlDownloadToFile dateien runterladen IMHO viel geschickter, als mit den Indys rumzuwurschteln. |
wo bekomme ich diese Kompo her? muss ich das wie hier machen?:
http://www.vbarchiv.net/archiv/tipp_476.html
das funktioniert aber nicht so.
matze hat folgendes geschrieben: |
| setz mal die Eigenschaft HandleRedirects auf TRUE. |
funktioniert immer noch nicht
Fighter#1 - Di 06.06.06 15:15
URLMON sollte schon dabei sein, einfach bei den uses hinzufügen.
Such im Forum danach, hab das schon so oft erklärt, wurde auch schon so oft von andern erklärt.
URLDOWNLOADTOFILE
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!