Sven Rautenberg: input type file

Beitrag lesen

Moin!

Ich werde dann mal versuchen, in php rauszubekommen, ob der User mir ne Texdatei geschickt hat oder was anderes. Wenngleich mir ausser der Abfrage des MIME-Typs und der Dateiendung gerade nicht viel einfällt ;-) Wir werden sehen..

Unix kennt den Befehl "file", welcher als Ergebnis eine Textzeile zurückliefert, die den gefundenen Dateityp näher beschreibt. Wenn diese Textzeile nicht das Wort "text" enthält, kann man mit einiger Sicherheit davon ausgehen, dass es sich um keine Textdatei handelt.

Die Alternative wäre, einfach eine Textdatei anzunehmen, solange bis man auf störende Bytefolgen stößt. Wobei "störend" extrem von der zu erfüllenden Aufgabe abhängt. Nullbytes können stören und treten typischerweise nur bei Programmdateien auf, nicht aber in Textfiles. Aber wenn die Anwendung ein Nullbyte absolut benötigt, sind diese natürlich kein Kennzeichen mehr für "unbrauchbarer Dateiinhalt".

Es ist in der Tat schwierig, einen Dateiinhalt als "hat Typ X" zu bestimmen, solange keine eindeutige Definition existiert, wie "Typ X" überhaupt auszusehen hat.

Beispiel: Ein GIF-Bild hat eindeutige Merkmale. Da muß beispielsweise an bestimmten Stellen ganz am Anfang die Zeichenfolge "GIF" stehen, sonst ist die Datei kein GIF.

Bei Textdateien ist das ungleich schwieriger. Weil jegliches Zeichen irgendwo in der Datei üblicherweise als Inhalt behandelt wird - und nicht als Kennzeichnung, die man vom Inhalt getrennt zu behandeln hätte.

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)