Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

pdf-Dateien per php-Skript öffnen+anzeigen





Frage

Hallo zusammen! Vielleicht kann mir ja hier jemand aus Erahrung einen Tipp geben: ich habe in einem Zugriffsgeschützen Verzeichnis pdf-Dateien liegen, die mit hilfe eines php-Skriptes, das auf diesen ordner zugreifen darf, anzeigen soll. Ich habe ein Link gesetzt, der den Dateinamen an das Skript übergibt. Dort in dem Skript stehen dann folgende Header-Angaben: 'Cache-Control: must-revalidate, post-check=0, pre-check=0' 'Pragma: no-cache' 'Content-Type: application/pdf' 'Content-Disposition: attachment; filename=\"name.pdf\"' und der aufruf erfolgt mit readfile() Ich kann die pdf-Dateien in meinem Firefox 2, IE6 und IE7 sowie schon Firefeox 3 Beta 5 öffnen..ohne Fehler.. Ich bekomm aber meldungen, dass es einige nicht können (benutzen auch IE6 oder IE7)...fehlen etl. noch header-Angaben? Wenn ja welche? Oder kennt jemand eine komplett andere möglichkeit?

Antwort 1 von son_quatsch

$filename = $_REQUEST['filename'];

/* bitte anschließend noch $filename sinnvoll filtern und erweitertn, nicht damit ein böser Aufrufer als filename "somefile.php" übergeben kann und somit die Skripte (samt Passwörter?) im Klartext auslesen kann */

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

/* Falls du ein Download-Fenster erzwingen willst, nutze folgende:
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download"); */

header("Content-Type: application/pdf");

header("Content-Disposition: attachment; filename=". $filename. ";");

header("Content-Transfer-Encoding: binary");
header("Content-Length: ". filesize($filename) );

readfile($filename);
Aber ohne genaue Beschreibung der Nutzer ist es nur schwer abschätzbar. Möglicherweise haben die bei sich sonderbare Einstellungen, die das Adobe-Plugin im MSIE nicht richtig laden lassen. Oder beschränkte Zugriffsrechte...

Antwort 2 von son_quatsch

Huch, gerade noch etwas mehr gefunden (die ganzen Kommentare in der PHP-Doku helfen viel: http://de3.php.net/manual/de/function.header.php) - der Fehler könnte auch auf Content-Disposition: attachment beruhen. Versuch hier statt attachment mal inline zu benutzen und teste das zunächst alles bei dir, danach mit den Problemkunden.

Antwort 3 von michi200

Hi!

Vielen Dank! Ich werds mal so austesten.

Antwort 4 von michi200

Ja, danke. Also bei mir läuft das in allen Browsern. Jetzt mal gucken, ob das auf anderen Rechnern und in anderen Browsern auch geöffnet werden kann.

Antwort 5 von son_quatsch

Zitat:
Ja, danke. Also bei mir läuft das in allen Browsern
Das freut mich :-) Willst du mir (und allen anderen) auch sagen, was du nun alles geändert hast?

Antwort 6 von michi200

Hey!
Jo, ich hab meine im ersten Post genannten header-Angaben genauso angepasst bzw. hinzugefügt, wie du es mir mitgeteilt hast. Damit ging es weiterhin in meinen Browsern (IE7, IE6 und FF2) und beim Kunden auch. Bin aber "attachment" geblieben, statt inline. Bei inline kannes ja manchmal vorkommen, dass der Acrobat Reader einfach nicht mehr arbeiten will.

Grüße, Micha

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: