Torsten: PDF Datei anzeigen

Hallo zusammen,

Kurz die "Rahmenbedingungen"
System: Win XP
Apache
PHP 5.2.0

Dieses Projekt soll NUR LOKAL laufen !

so, nun aber zu meinem problem:

Ich habe mit php eine, bzw mehrere PDF dateien mit hilfe des kostenlosen tools fpdf erstellt, die in einem extra verzeichnis gespeichert werden (soweit kein problem).

jetzt will ich die dateien anzeigen (zu einem späteren zeitpunkt)
dazu gibt es eine auswahlliste in der alle dateinamen, bzw ein teil des namens, aufgelistet sind.
-> ziel: datei auswählen, submit drücken -> datei soll sofort angezeigt werden !
und genau hier liegt das problem !
ich bekomme es einfach nicht hin ;-(

Folgendes habe ich versucht:

Submit geht auf datei anzeigen.php

<?PHP
 header("Content-Type: application/pdf");
 header("Location: archiv/00872007.pdf");
?>
nur zum test wird hier immer die gleiche datei geöffnet, aber auch das geht nicht ?!

oder so
<?PHP
 header("Content-Type: application/pdf");
 header("Content-Disposition: inline; filename=archiv/00872007.pdf");
?>

oder auch so
<object data="archiv/00872007.pdf" type="application/pdf" width="100%" height="100%">
 <param name="src" value="archiv/00872007.pdf">
</object

und noch einige andere varianten die ich im forumsarchiv gefunden habe.
geht alles nicht ;-(

wie soll ich es machen ???

gruss
moellit

  1. Hi!

    -> ziel: datei auswählen, submit drücken -> datei soll sofort angezeigt werden !

    Dazu muß der Browser aber auch entsprechend konfiguriert sein.
    Dein Browser ist so konfiguriert, daß es möglich ist, PDF-Dateien direkt anzuzeigen?
    Du setzt das Adobe Acrobat-Plugin (bzw. ActiveX-Control) dazu ein?
    Oder arbeitest hier mit einer anderen Software?
    Und wenn du im Browser auf den Link zu einer PDF-Datei klickst, dann wird diese auch direkt im Browser geöffnet und nicht zum Download geboten, ja?

    <?PHP
    header("Content-Type: application/pdf");
    header("Location: archiv/00872007.pdf");
    ?>

    Was passiert denn?
    Wird dir die Datei zum Download geboten?
    Gibt es eine Fehlermeldung? Wenn ja, welche?

    Der Content-Type ist für PDF der Richtige.

    Der Location-Header ist allerdings so nicht ganz korrekt.
    Das sollte so aussehen:
    header("Location: http://example.com/archiv/00872007.pdf");

    Im PHP-Handbuch steht dazu:

    HTTP/1.1 verlangt einen absoluten URI inklusive dem Schema, Hostnamen und absoluten Pfad als Argument von Location:, aber manche Clients akzeptieren auch relative URIs.

    Und nach dem Senden eines Location-Headers solltest du dein Script mit exit; beenden, so daß nicht eventuell noch nachfolgender Code ausgeführt wird, falls ein Client der Weiterleitung nicht folgen sollte.

    Welchen Browser setzt du denn eigentlich ein?
    Der MSIE macht ja meist Probleme und achtet meist auf Dateiendungen anstatt auf den MIME-Type.
    Wenn du jetzt eine Datei mit der Endung .php hast, die dann PDF-Daten zum Browser schickt, dann könnte ich mir gut vorstellen, daß der MSIE dabei rumzickt. Da müßte man dann wohl tricksen, so daß man einen GET-Parameter übergibt, der auf ".pdf" endet. Das sollte vermutlich funktionieren.
    Aber in deinem Fall willst du ja nur auf eine PDF-Datei weiterleiten...

    Hast du schon versucht, was passiert, wenn deine PHP-Datei das PDF einliest und deren Inhalt dann ausgibt?

    Schöner Gruß,
    rob

    1. Hi!

      -> ziel: datei auswählen, submit drücken -> datei soll sofort angezeigt werden !
      Dazu muß der Browser aber auch entsprechend konfiguriert sein.
      Dein Browser ist so konfiguriert, daß es möglich ist, PDF-Dateien direkt anzuzeigen?
      Du setzt das Adobe Acrobat-Plugin (bzw. ActiveX-Control) dazu ein?

      Ja

      Oder arbeitest hier mit einer anderen Software?

      Nein

      Und wenn du im Browser auf den Link zu einer PDF-Datei klickst, dann wird diese auch direkt im Browser geöffnet und nicht zum Download geboten, ja?

      Hab ich gerade mal versucht, da passiert das gleiche ?!
      -> er hängt sich auf, bis ich auf abbrechen klicke ??? !!!

      <?PHP
      header("Content-Type: application/pdf");
      header("Location: archiv/00872007.pdf");
      ?>
      Was passiert denn?
      Wird dir die Datei zum Download geboten?
      Gibt es eine Fehlermeldung? Wenn ja, welche?

      -> er hängt sich auf, bis ich auf abbrechen klicke ??? !!!

      Der Content-Type ist für PDF der Richtige.

      Der Location-Header ist allerdings so nicht ganz korrekt.
      Das sollte so aussehen:
      header("Location: http://example.com/archiv/00872007.pdf");

      Im PHP-Handbuch steht dazu:

      HTTP/1.1 verlangt einen absoluten URI inklusive dem Schema, Hostnamen und absoluten Pfad als Argument von Location:, aber manche Clients akzeptieren auch relative URIs.

      Und nach dem Senden eines Location-Headers solltest du dein Script mit exit; beenden, so daß nicht eventuell noch nachfolgender Code ausgeführt wird, falls ein Client der Weiterleitung nicht folgen sollte.

      Welchen Browser setzt du denn eigentlich ein?

      MSIE 6 SP2

      Der MSIE macht ja meist Probleme und achtet meist auf Dateiendungen anstatt auf den MIME-Type.
      Wenn du jetzt eine Datei mit der Endung .php hast, die dann PDF-Daten zum Browser schickt, dann könnte ich mir gut vorstellen, daß der MSIE dabei rumzickt. Da müßte man dann wohl tricksen, so daß man einen GET-Parameter übergibt, der auf ".pdf" endet. Das sollte vermutlich funktionieren.
      Aber in deinem Fall willst du ja nur auf eine PDF-Datei weiterleiten...

      Hast du schon versucht, was passiert, wenn deine PHP-Datei das PDF einliest und deren Inhalt dann ausgibt?

      das werde ich mal versuchen...

      Schöner Gruß,
      rob

      danke schonmal und gruss zurück
      ...aber jetzt erstmal gute nacht !

      1. Nochmal Hallo,

        wer zu dumm ist zum gucken sollte keine fragen stellen (ICH) ;-)

        ...der reader hat nach ner aktualisierung gefragt, das war jedoch im hintergrund und ich habe es nicht gesehen !!! ;-)

        jetzt geht es ohne probleme !!!

        Gruss
        Torsten

        1. Hi!

          ...der reader hat nach ner aktualisierung gefragt, das war jedoch im hintergrund und ich habe es nicht gesehen !!! ;-)
          jetzt geht es ohne probleme !!!

          Aha. OK.
          Na dann ist ja gut...
          Ich wollte dir gerade schreiben, daß das Problem dann nichts mit PHP und deinem Script zu tun haben kann, wenn der gleiche Effekt auftritt, wenn du so auf ein verlinktes PDF klickst.

          Gute Nacht,
          rob