Michael Schröpl: file_exists() && getimagesize() checken via http://

Beitrag lesen

HI auch,

Ich möchte gerne ermitteln ob eine vom user angegebene Datei
in der Form (http://www.test.de/bild.de) existiert,

sende einen HTTP-HEAD-Request an diese Adresse.
Du erhältst dieselben HTTP-Header-Informationen wie bei einem normalen
GET-Request (also z. B. auch die Länge der Datei), nicht aber ihren
Inhalt. Und es geht unabhängig von der Dateigröße relativ schnell, da
nur ein paar hundert Bytes ausgetauscht werden müssen.

b.z.w. ob die URL korrekt angegeben wurde,und ob es ein Bild ist.

Was ist "ein Bild"? Exakte Definition, bitte.

Ich fürchte allerdings, daß dieser Teil Deiner Aufgabenstellung ohne
die Übertragung des Datei-Inhalts nicht lösbar sein wird.

Allerdings haben es viele Dateiformate an sich, daß man sie anhand der
ersten paar Bytes erkennen kann.
Falls Deine Definition von "Bild" auf solchen Informationen basiert,
kannst Du versuchen, einen GET-Request an den Ziel-Server zu senden,
aber nur einen "range" von Bytes anzufordern - HTTP kann das:
   http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16
Damit wärest Du wieder unabhängig von der konkreten Dateigröße - ich
bin aber nicht sicher, ob jeder Webserver solche range requests in
Deinem Sinne beantworten wird, also - vorher ausprobieren.

Viele Grüße
      Michael