dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

PDF-Dateien

Warum stellt mein Internet Explorer statt der PDF-Datei eine leere Seite dar?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

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.

Warum stellt mein Internet Explorer statt der PDF-Datei eine leere Seite dar?
http://www.php-faq.de/q-pdf-files-ie-blank.html
 

Login