Hallo
Ich habe meine PDFs in einem geschützten Ordner liegen, von dort aus möcht ich sie ausgeben. Das verrückte darin ist, das es manchmal geht und manchmel nicht. Der Pfad ist in Ordnung. Aber irgendwas mache ich falsch.
$filename='/ www/users/12/docs/datei.pdf';
Das ist kein Dateiname, …
header("Content-Disposition: filename=\"$filename\""); // Dateiname
… weswegen diese Zeile einen ungültigen Wert enthält. Die Spezifikation für HTTP v1.1 sagt zu diesem Punkt, dass Browser jegliche Verzeichnisangaben ignorieren sollen. Das hört sich für mich an, als ob von deiner Vorgabe nur „datei.pdf“ übrig bliebe.
„The receiving user agent SHOULD NOT respect any directory path information present in the filename-parm parameter, which is the only parameter believed to apply to HTTP implementations at this time. The filename SHOULD be treated as a terminal component only. “
Wenn Browser aber Verzeichnisangaben „sauber“ ignorieren, sollten sie auch nicht darüber stolpern, dass das, was sie ignorieren sollen vorhanden ist. Zumal es sich um einen Vorschlag für den Dateinamen, der beim speichern der Datei vorgegeben ist, handelt. Also eigentlich nichts überlebenswichtiges.
Tschö, Auge
Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
Wolfgang Schneidewind *prust*