Alexander (HH): Reguläre Ausdrücke Dateinamen prüfen

Beitrag lesen

Moin Moin!

Die Daten werden mittels AJAX an den Server übertragen, Javascript müsste also eh aktiviert sein.

Wie kommst Du denn auf die lustige Idee?

AJAX erzeugt auch nur HTTP-Requests. Alles, was ich über Uploads wissen muß (zusätzliche Header, Request-URL, etc.), kann ich meinem Client entlocken. Und dann kann ich wieder mal ohne aktives Javascript hochladen.

Außerdem prüfe ich die Daten serverseitig wieder, es geht mir nur erst mal darum, unnötige Uploads zu vermeiden (deshalb die Javascript-Prüfung).

Mehr kann JS auch nicht leisten.

Die Prüfung ob es tatsächlich PDF-Dateien sind wird aber bestimmt auch serverseitig unzureichend sein, mir fällt da nur die zusätzliche Prüfung des Mime-Types ein.

Die Spezifikationen für das PDF-Format findest Du bei Adobe oder der ISO, die englische Wikipedia hat auch einen sehr umfangreichen Artikel zum Thema. Der absolut minimalste Test dürfte sein, ob die ersten fünf Bytes 0x25 0x50 0x44 0x46 0x2D ("%PDF-") sind. Danach folgt die PDF-Versionsangabe, danach eine mehr oder weniger wilde Mischung aus Text und Binärdurchfall. Bessere Tests wühlen darin herum und prüfen wenigstens, ob grobe Strukturen und Längen passen.

Habe aber gelesen, hier kann man auch Beliebiges notieren.

Korrekt, der Client kann als MIME-Type auch mal "x-foobar/x-bazofoo", "application/unknown" oder "application/octet-stream" senden. Oder eben "application/pdf", auch wenn der Dateiinhalt alles andere als PDF ist. Und damit es nicht langweilig wird, hängt der übertragene MIME-Typ oft auch davon ab, was so alles an Software auf dem Client-Rechner installiert ist, und natürlich vom Client (Browser).

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".