LX: iFrame: Erkennen, ob Bild, Text oder SGML-Daten beinhaltet

Beitrag lesen

Das Problem schildert sich etwas komplexer, als es tatsächlich ist: Du möchtest im Client scriptseitig den Mimetype einer unbekannten Ressource ermitteln.

Die Dateiendung hilft Dir nicht weiter, das CGI übermittelt auch den Mimetype der übertragenen Daten möglicherweise nicht korrekt, ansonsten könntest Du mit xhr.getResponseHeader('Content-Type') zum gewünschten Ergebnis kommen.

Falls all dies nicht funktionieren soll, hilft nur noch die tatsächliche Erkennung anhand bestimmter "magischer Zeichen", wie es das Unix-Kommando "file" macht - in diesem Fall entspräche responseText bspw. dem binären Inhalt einer Bild-Datei. Dementsprechend kannst Du verschiedene RegExp durchexerzieren, die Dateien erkennen. Für JPEG/JFIF wäre es bspw.

/^.{6}J(PEG|FIF)/

mit /^.{6}J(PEG|FIF)/.test(data) kannst Du demnach prüfen, ob Du eine JPEG/JFIF-Datei hast. Für nahezu alle Dateitypen kann man mit ein wenig Einfallsreichtum derartige RegExp schreiben (etwa /<html>/i für html).

Gruß, LX

--
RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.