php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.10.2007, 12:16  
bp158
Gast
 
Beiträge: n/a
Standard 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
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.10.2007, 12:23  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

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.
Zergling-new ist offline  
Alt 16.10.2007, 13:45  
bp158
Gast
 
Beiträge: n/a
Standard

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
 
Alt 17.10.2007, 11:23  
bp158
Gast
 
Beiträge: n/a
Standard

Hi,

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

Thx

BP
 
Alt 17.10.2007, 11:38  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
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.
Zergling-new ist offline  
Alt 17.10.2007, 19:26  
bp158
Gast
 
Beiträge: n/a
Standard

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
 
Alt 17.10.2007, 19:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

- Firewall?
- mal online statt lokal ausprobiert?
nikosch ist gerade online  
Alt 17.10.2007, 20:17  
bp158
Gast
 
Beiträge: n/a
Standard

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
 
Alt 17.10.2007, 21:27  
CIX88
Gast
 
Beiträge: n/a
Standard

Zitat:
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.
 
Alt 17.10.2007, 23:07  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von CIX88
Zitat:
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....
brian johnson ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Ausgabe eines gifs für ein Captcha Canni HTML, Usability und Barrierefreiheit 5 15.07.2008 19:05
Class Ausgabe Problem wk-moray PHP-Fortgeschrittene 6 12.02.2008 10:06
imagejpeg ausgabe funkt nicht zoro PHP Tipps 2007 5 30.07.2007 22:31
Problem mit der Ausgabe Kein Genie PHP Tipps 2006 5 26.11.2006 21:24
Problem mit Ausgabe bzw. Abfrage mit ORDER BY mayer Datenbanken 7 02.07.2006 21:45
Ausgabe einer Datei in Variable speichern Madden PHP Tipps 2007 11 16.11.2005 01:33
[Erledigt] SELECT Problem - keine Ausgabe. Datenbanken 1 24.10.2005 02:06
[Erledigt] Ausgabe der Datenabfrage in einer Tabelle? Datenbanken 2 26.09.2005 21:28
Ausgabe der Auswahlliste PHP Tipps 2005-2 6 21.09.2005 13:43
3 Tabellen verbunden -- Ausgabe in einer Spalte Datenbanken 4 06.09.2005 10:43
PHP-Magazin - Ausgabe 5.2005 imported_Ben Off-Topic Diskussionen 1 08.08.2005 08:39
[Erledigt] Geteilte Ausgabe an den Browser... PHP-Fortgeschrittene 4 01.07.2005 13:07
Ausgabe nur dann, wenn htmlspecialchars() verwendet PHP Tipps 2004 1 27.10.2004 21:17
Sortierung der Ausgabe PHP-Fortgeschrittene 3 08.10.2004 09:22
[Erledigt] Prozedurale Bibliothek für HTML Ausgabe PHP Tipps 2004 0 06.07.2004 11:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datei konnte nicht in den zwischenspeicher geschrieben werden, die datei konnte nicht in den zwischenspeicher geschrieben werden, die internetseite konnte nicht geöffnet werden. sie ist entweder nicht verfügbar, https pdf in den zwischenspeicher fehler, pdf kann nicht in den zwischenspeicher, datei kann nicht in den zwischenspeicher geschrieben werden, cache-control: no-store, no-cache, must-revalidate acrobat x, ie6 die datei konnte nicht in den zwischenspeicher geschrieben werden, $http_server_vars[\'http_user_agent\']==\'contype\', dielektrikum 200t bp, \application.internetexplorer\ \application/pdf\, php ie https readfile, content-type application/pdf wird nicht im ie geöffnet, safari pdf \diese datei kann nicht gefunden werden\, ie versucht php download, content-type application pdf ie, application pdf internet-explorer, internet explorer pdf anzeigen ohne download php, die datei konnte nicht in den zwischenspeicher geschrieben werden php, die datei konnte nicht in den zwischenspeicher geschrieben werden ie8

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.