Autor Beitrag
Slartibartfaß
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 26.06.03 14:46 
Hallo,

wie kann ich herausfinden, ob eine Datei unter einer bestimmten URL existiert?

Bisher bin ich den Weg gegangen, diese mit IdHttp.Get('http://www.adresse.de/datei.ext') herunterzuladen. Passiert ein Fehler, dann weiss ich, dass es die Datei nicht gibt (oder ein anderes Problem besteht). Das hat den unangenehmen Nebeneffekt, dass in Server-Logs die Datei in der Liste der abgerufenen aber nicht vorhandenen Dateien aufgeführt wird. Dies möchte ich verhindern, indem ich nicht gleich versuche, die Datei herunterzuladen sondern zuerst feststelle, ob sie existiert. Nur, wie macht man das?

Danke für Eure Hilfe,
Mathias
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Do 26.06.03 19:10 
hmmm.. das gabs hier auch schonmal im forum.
die lösung wäre: einfach mal hier suchen ;-) oder einfach die dateigrösse der zu downloadenden datei prüfen. wenn 0 zurück kommt gibts die halt net.

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Do 26.06.03 19:48 
Ich glaube, ich habe das auch schon irgendwo gelesen. Ist es nicht vielleicht auch möglich, den Fehler abzufangen? Ich meine, wenn eine URL nicht existiert, gibt's doch immer diesen Fehler 404, oder? Wird da nicht irgendwas an Windows gesendet, was man abfangen kann, so nach dem Motto:

ausblenden Delphi-Quelltext
1:
If Error=404 Then Tue dies Else Tue das;					


:?: :?: :?:

_________________
Hasta La Victoria Siempre
M4EiB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Do 26.06.03 22:26 
mit IdHttp.Head('http://www.adresse.de/datei.ext') kannst du nur die response-header anfordern.
wenn es dir aber nur um die einträge in logs geht, wird dir das auch nicht helfen, da es wahrscheinlich auch geloggt wird.