Ankündigung

Einklappen
Keine Ankündigung bisher.

PDF Ausgabe im IE

Einklappen

Neue Werbung 2019

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

  • PDF Ausgabe im IE

    Moin,

    ich hab da jetzt ein kleines Problem. Erzeugung des PDF klappt einwandfrei. Die PDF wird am Ender per output($filename) auf die Platte geschrieben (zum nachträglichen Kontrollieren) und soll nach deren Erzeugung per Link aufgerufen werden können. Da der Aufrufende keine Berechtigung für das Verzeichnis hat, wo die PDF's gespeichert werden, soll die Datei über ein seperates PHP Script ausgeliefert werden. Mit dem FF klappts (wie so viele Dinge), mit dem IE (natürlich) nicht ...

    Das Auslieferungsscript (im moment nur zum test) sieht so aus:

    Code:
    session_start();
    
    $pdf_outfilename = $_SESSION["pdf_out"];
    
    /*
    header("Content-Type: application/octet-stream;filename=$pdf_outfilename");
    header("Content-Disposition: attachment;filename=$pdf_outfilename");
    */
    
    if ($HTTP_SERVER_VARS['HTTP_USER_AGENT']=='contype')
      {
      Header('Content-Type: application/pdf');
      exit;
      }
    
    Header('Content-Type: application/pdf');
    Header('Content-Length: '.filesize('../angebote/'.$pdf_outfilename));
       
    readfile('../angebote/'.$pdf_outfilename);
    
    /*
    Header('Content-Type: application/pdf');
    Header('Content-disposition: inline; filename='.$pdf_outfilename); 
    readfile('../kd/angebote/'.$pdf_outfilename);
    */
       
    exit;
    Alles was kommentiert ist, hab ich schon probiert, leider beim IE immer ohne Erfolg

    Der IE versucht entweder die pdf_out.php als PDF zu öffnen und bricht dann natürlich ab oder es erscheint eine Fehlermeldung im Acrobat Reader "Beim Öffnen des Dokuments ist ein Fehler aufgetreten. Diese Datei kann nicht gefunden werden." ...

    Habt Ihr evtl. einen (oder auch mehrere) Tips ??

    Thx

    BP

  • #2
    Wenn du eine Datei zum Download anbietest, dann mach das doch einfach in der Reihenfolge und mit den Headern, die dir das Manual empfiehlt:
    http://de.php.net/header

    Und wenn dein Skript kaputte Download-Dateien produziert, schau dir den Inhalt der heruntergeladenen Datei auch mal an.

    Kommentar


    • #3
      Mahlzeit,

      also, ich hab jetzt das so umgebaut wie es das PHP-Manual bei PDF-Files zeigt.

      Damit wird folgender Header gesendet (laut LiveHTTPheaders-Plugin für Firefox)
      Code:
      HTTP/1.x 200 OK
      Date: Tue, 16 Oct 2007 11:36:51 GMT
      Server: Apache/2.2.2 (Unix) DAV/2 mod_ssl/2.2.2 OpenSSL/0.9.8b PHP/5.1.4 mod_apreq2-20051231/2.5.7 mod_perl/2.0.2 Perl/v5.8.7
      X-Powered-By: PHP/5.1.4
      Expires: Thu, 19 Nov 1981 08:52:00 GMT
      Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
      Pragma: no-cache
      content-disposition: attachment; filename="AN1192534368.pdf"
      Keep-Alive: timeout=5, max=100
      Connection: Keep-Alive
      Transfer-Encoding: chunked
      Content-Type: application/pdf
      Der Firefox ruft auch den Acrobat Reader korrekt auf bzw. bietet es an, die Datei zu downloaden ...

      Im IE dagegen, will er die pdf_out.php anzeigen/downlaoden, was ja absolut nicht stimmt. Wenn ich beim IE speichern oder anschauen will, dann sagt er "pdf_out.php von ... kann nicht übertragen werden. Die Internetseite konnte nicht geöffnet werden. Sie ist entweder nicht verfügbar oder konnte nicht gefunden werden. Versuchen Sie es später erneut."

      Habe es auch auf'm Mac probiert mit FF und Safari. Beide funktionieren ...
      BP

      Kommentar


      • #4
        Hi,

        hat niemand weiter dieses Problem (würde mich stark wundern) ???

        Thx

        BP

        Kommentar


        • #5
          Example 1585. Download dialog
          PHP-Code:
          <?php
          // We'll be outputting a PDF
          header('Content-type: application/pdf');

          // It will be called downloaded.pdf
          header('Content-Disposition: attachment; filename="downloaded.pdf"');

          // The PDF source is in original.pdf
          readfile('original.pdf');
          ?>
          Benutz genau das, sonst nichts.

          Lass den anderen Krempel doch mal weg und schau dir auch mal wie erwähnt den Inhalt der kaputten IE-Datei an.

          Kommentar


          • #6
            Hi,

            so, hab genau das eingebaut und ... wie zu erwarten war gehts beim FF und beim IE gehts nicht. Habe hier mal die Fehlermeldungen als Screenshot (kommt sowohl bei Öffnen als auch bei speichern ...).



            Es wird keine Datei übertragen, deren 'Inhalt' man sich anschauen könnte ...

            BP

            Kommentar


            • #7
              - Firewall?
              - mal online statt lokal ausprobiert?

              Kommentar


              • #8
                Hi,

                Problem ist behoben. Es liegt definitiv an einem Fehler des IE, den man aber umgehen kann indem man am Anfang des Scripts folgendes einbaut

                Code:
                session_cache_limiter('private')
                Damit klappt es ...

                Trotzdem Danke für Eure Hilfe !!

                BP

                Kommentar


                • #9
                  Es liegt definitiv an einem Fehler des IE
                  Kann ich mir nicht vorstellen, weil z.B. bei FPDF geht es auch.
                  Und dort wird beim IE Content-Type: application/force-download benutzt.
                  Warum sollte es hier nicht gehen.

                  Kommentar


                  • #10
                    Zitat von CIX88
                    Es liegt definitiv an einem Fehler des IE
                    Kann ich mir nicht vorstellen, weil z.B. bei FPDF geht es auch.
                    Und dort wird beim IE Content-Type: application/force-download benutzt.
                    Warum sollte es hier nicht gehen.
                    liegt wohl nicht am Content-Type (imo gibts force-download nicht), sondern an sessions. und da hat der IE manchmal ne macke....

                    Kommentar

                    Lädt...
                    X