Problem beim PDF öffnen mit header

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem beim PDF öffnen mit header

    Hallo Zusammen,
    ich bin blutiger Anfänger und stehe vor einem Problem. Ich übergebe von einem Formular eine Variable (id) die dann in einer Variablen einen Pfad zum öffnen eines PDF Dokuments dienen soll. Es wird zwar versucht die Datei zu öffnen es kommt aber immer die Fehlermeldung "Fehler beim Laden des PDF Dokuments". Das script wird mit include von einem anderen aus aufgerufen.
    Ich hoffe ihr könnt mir nen Tipp geben. Hier das Script, die Var ID wird übergeben, das hab ich mit echo schon geprüft.

    <?php


    //
    Variablen
    $file=pdf.pdf


    header("Content-disposition: attachment; filename=pdf.pdf);
    header("Content-type: application/pdf");
    readfile($dir.$file);
    exit();


    ?>

  • #2
    Warum schaust du dir nicht mal das an, was im HTTP-Response-Body steht?

    Kommentar


    • #3
      Lass es dir nicht anzeigen, sondern speichere die Ausgabe in eine Datei* - und dann schau mit einem Texteditor rein, ob sich in der Ausgabe PHP-Fehlermeldungen befinden.


      * Entweder einen Browser nutzen, der PDFs nicht inline darzustellen versucht, sondern gleich zum Download anbietet, oder WGET o.ä. - oder die Header im Script temporär so anpassen, dass ein Download erzwungen wird.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        PHP-Code:
        <?php


        //
        Variablen
        $file
        =pdf.pdf


        header
        ("Content-disposition: attachment; filename=pdf.pdf);
        header("
        Content-typeapplication/pdf");
        readfile(
        $dir.$file);
        exit();


        ?>
        • error reporting einschalten!
        • $file ist kein String (Anführungszeichen)
        • $dir ist nicht definiert.
        • In den header Bereichen die Anführungszeichen korrigieren


        Setz einen Editor mit PHP Syntax highlight ein, dann siehst du, wie viele Fehler hier schon in den paar Zeilen Code vorhanden sind.
        Zuletzt geändert von SysOp; 22.09.2016, 07:58.

        Kommentar


        • #5
          Danke für die Tips, nachdem ich die von SysOp angesprochenen Fehler und die Variablen ($dir wird vom Haupt Script übergeben) überprüft hab ist mir der Fehler aufgefallen ich hatte den Pfad falsch geschrieben
          Meine Version ../Verzeichnis/Datei

          Richtige Version Verzeichnis/Datei


          Danke für eure Hilfe !!!!

          Kommentar


          • #6
            Arbeite niemals mit relativen Dateipfaden, sondern gib immer einen absoluten Dateipfad an.

            Kommentar


            • #7
              Oh man doch noch etwas ich möchte nach dem download eine neue seite aufrufen... funktioniert aber nicht mit header
              ich hab nach

              readfile...
              header("Location: http://test.projekt1.bayern/danke.html");

              eingefügt da tut sich nichts, wenn ich es davor mache geht's... ich weiß ich nerve wahrscheinlich, wäre trotzdem sehr dankbar für eure Hilfe denn ich finde in meinen Büchern keinen Hinweis dazu

              Kommentar


              • #8
                Zitat von dcsandreas Beitrag anzeigen
                Oh man doch noch etwas ich möchte nach dem download eine neue seite aufrufen... funktioniert aber nicht mit header
                ich hab nach

                readfile...
                header("Location: http://test.projekt1.bayern/danke.html");

                eingefügt da tut sich nichts, wenn ich es davor mache geht's... ich weiß ich nerve wahrscheinlich, wäre trotzdem sehr dankbar für eure Hilfe denn ich finde in meinen Büchern keinen Hinweis dazu
                Nach einem Download gehts auch nicht.

                Kommentar


                • #9
                  Du kannst nicht auf einen HTTP-Request mit zwei Responses antworten.

                  Die übliche Vorgehensweise ist, direkt auf die Seite zu verlinken, die „nach“ dem Download angezeigt werden soll. Und diese startet dann den Download, indem sie per Meta-Tag oder JavaScript auf die Datei, die heruntergeladen werden soll, „weiterleitet“.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X