Robert R.: PDF Downloaden

Beitrag lesen

Liebe Mitdenker,
liebe Wissende,
liebe Neugierige,

ja!

Korrigiert mich, wenn ich falsch liege, aber wenn ich einen Downloaddialog erzwingen möchte, benutze ich Octet/stream:

Warum nicht den richtigen MIME-Type angeben?
Durch die Content-Dispoition acht das eigentlich inzwischen jeder Browser so, wie Melina sich das wünscht.

basename() für den filename ist schon ganz gut. Allerdings ķönnen da immer noch Zeichen im String sein, mit denen der Client nix anfangen kann.

Einen Pfad aus $_GET zu akzeptieren ist eine ganz böse Idee. Allerdings könnte da basename() auch ausreichen.

Anstelle von Request-Parametern kann man auch mit mod_rewrite und path_info arbeiten. Dann sieht die URL auch hübsch aus

GET example.org/files/kalender.pdf

Bei allen Requests auf /files/ einfach das Skript aufrufen. Das guckt dann in path_info und holt sich dort den ersten Teil, falls mehrere enthalten sind.

Das bringt die User dann gar nicht erst auf die Idee, herumzuexperimentieren, um an die passwd oder andere nette Systemdateien zu kommen.

Weiterhin übergebe ich gerne Pfade per GET an die download.php, etwa download.php?file="datei.pdf" und evaluiere den Parameter. Dabei habe ich die download.php stets im Document Root und der download Pfad befindet sich meistens im nicht öffentlichen Server Root in einem dortigen Unterordner download. Alle Pfade gehen dann relativ von diesem Ort aus. Damit man nicht auf beliebige Ordner und Dateien  im Server Root zugreifen kann, filtere ich Doppelpunkte aus dem GET-Parameter file heraus und ersetze sie durch einfache Punkte.

siehe oben: mod_rewrite

Spirituelle Grüße
Euer Robert

--
Möge der Forumsgeist wiederbelebt werden!