|
|
23.12. Warum stellt mein Internet Explorer statt der PDF-Datei eine leere Seite dar?
Internet Explorer achtet in vielen Bereichen (fälschlicherweise) auf
Dateienedungen statt auf den MIME-Typ. Bei Verwendung eines
GET-Requests, insbesondere aber bei einem POST-Request kann es dazu
kommen, dass nur eine leere Seite dargestellt wird. Folgende
Möglichkeiten gibt es, diesen Bug zu umgehen:
-
Umbenennen der Dateiendung in .pdf und Konfigurieren des
Servers, dass .pdf-Dateien durch PHP geparsed werden, z.B. durch die
Apache-direktiven AddType oder ForceType.
-
Bei GET ohne Parameter: Anhängen der Zeichenkette
/.pdf an die URL. Beispiel: /pdf.php/.pdf. Über diese
Methode kann auch ein Dateiname spezifiziert werden, für den Fall, dass
die Datei abgespeichert wird und der betreffende Browser die
Content-Disposition-Direktive nicht kennt.
-
Alternativ: Anhängen der Zeichenkette ?.pdf an die URL.
Beispiel: /pdf.php?.pdf.
-
Bei GET mit Parametern: Anhängen der Zeichenkette &.pdf
an die URL. Beispiel: /pdf.php?file=termine&.pdf.
-
Bei POST: Schreiben des Ergebnisses in eine temporäre Datei mit
der Endung .pdf und Weiterleitung per
header()
auf die Datei.
-
Alternativ bei kleinen PDF-Dateien (siehe
Wie groß darf die Menge an Daten sein, die ich in einer Session speichern darf?): Die PDF-Datei in die Session
schreiben und Weiterleitung auf eine PHP-Datei, die den Dateiinhalt
aus der Session ausgibt, mit den oben beschriebenen GET-Methoden.
-
Das Umschreiben der URL auf der Serverseite, z.B. durch das
Apache-Modul mod_rewrite.
|