IE verstümmelt Datei (PDF) bei Download
erawan
- browser
Hallo zusammen!
Wie es oft vorkommt - kaum hat man ein Problem gelöst (siehe https://forum.selfhtml.org/?t=148503&m=963551)
taucht auch schon das nächste auf.
Ich habe gerade feststellen müssen dass der Internet Explorer (Versionsübergreifend) von Dateien die per Header heruntergeladen werden ein paar KB vergisst/verliert etc. und somit die Datei kaputt macht. (Fehlermeldung im Adobe Reader "Beim Öffnen dieses Dokuments ist ein Fehler aufgetreten. Diese Datei ist beschädigt und kann nicht repariert werden")
Erklärung an einem Beispiel:
Ich lade die Datei test.pdf mit 130 KB auf den Server dort kommt es auch mit der vollen Dateigröße an (also 130 KB). Lade ich mir die selbe Datei über die Downloadschnittstelle mit dem Firefox herunter hat sie auch wieder 130KB und kann problemlos geöffnet werden. Wenn ich aber dieselbe Datei über den IE herunterlade kommt bei mir am PC nur ein test.pdf mit 100KB an und kann dementsprechend auch nicht mehr geöffnet werden weil beschädigt.
Als wenn die Sache nicht schon merkwürdig genug wäre kommt diese "Dateibeschneidung" nur bei Dateien vor die in einem bestimmten Dateigrößenbereichen liegen: Also Dateien bis 110KB lässt er in Ruhe (lädt er korrekt herunter), bis 160KB gehts wieder nicht, bis 210KB funktionierts wieder einwandfrei usw.
An den Dateien kann es meiner Meinung fast nicht liegen da diese alle im selben Programm mit den selben Einstellungen erstellt wurden.
Ich bin ratlos. Ist euch dieser Fehler vielleicht schon mal untergekommen bzw weiß wo die Ursache dafür liegt??
Mfg erawan
hi,
Ich habe gerade feststellen müssen dass der Internet Explorer (Versionsübergreifend) von Dateien die per Header heruntergeladen werden ein paar KB vergisst/verliert etc. und somit die Datei kaputt macht. (Fehlermeldung im Adobe Reader "Beim Öffnen dieses Dokuments ist ein Fehler aufgetreten. Diese Datei ist beschädigt und kann nicht repariert werden")
Hast du dich schon mit den Hinweisen in den Nutzerkommentaren zur Funktion header im PHP-Manual bzgl. Problemen mit dynamischem Download von PDFs beschäftigt?
gruß,
wahsaga
Hast du dich schon mit den Hinweisen in den Nutzerkommentaren zur Funktion header im PHP-Manual bzgl. Problemen mit dynamischem Download von PDFs beschäftigt?
Ich hatte mir zwar das PHP Manual zur Gemüte geführt aber die Kommentare hab ich nicht gelesen.
Wird dort das Problem aufgegriffen?
Dann muss ich mir den Link nochmal raussuchen und durchschauen.
Hast du dich schon mit den Hinweisen in den Nutzerkommentaren zur Funktion header im PHP-Manual bzgl. Problemen mit dynamischem Download von PDFs beschäftigt?
Ähm ich hab mir die Kommentare durchgeschaut bin aber nicht wirklich schlauer als vorher.
Die dort angegebenen Header verwende ich auch.
Bei manchen habe ich gesehen dass die statt readfile() die Funktion fopen() verwenden. Ist das der Grund?
Eine bisschen genauer beschriebenes Hinweisschild (wo in den 20 Seiten Kommentaren etwas zu finden ist das mir weiter helfen könnte) wäre hilfreich ...
Bei manchen habe ich gesehen dass die statt readfile() die Funktion fopen() verwenden. Ist das der Grund?
Also derzeitiger Stand ist der dass ich mein Downloadscript an das, welches in den Kommentaren erwähnt wird
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: " . $mime_type);
header("Content-Length: " .(string)(filesize($downloadfile)) );
header('Content-Disposition: attachment; filename="'.basename($downloadfile).'"');
header("Content-Transfer-Encoding: binary\n");
$fp = fopen($downloadfile, 'rb');
$buffer = fread($fp, filesize($downloadfile));
fclose ($fp);
print $buffer;
angepasst habe und es scheint als ob die Dateien jetzt auch mit dem IE richtig ankommen. Um das aber sicher sagen zu können bedarf es aber noch einiger Tests ...
Irritiert bin ich u.a. von der Headerangabe "Pragma: hack" <- ist das Standard?? bisher kenn ich die Angabe nur mit public bzw private.
Mfg erawan
hi,
Hast du dich schon mit den Hinweisen in den Nutzerkommentaren zur Funktion header im PHP-Manual bzgl. Problemen mit dynamischem Download von PDFs beschäftigt?
warum sollte er?
Wenn ich ihn richtig verstanden habe, handelt es sich um eine statische Datei.
Ansonsten wären vielleicht noch Apache Manuals bzgl. Mime-Type usw. interessant.
Viele Grüße,
Reiner
Wenn ich ihn richtig verstanden habe, handelt es sich um eine statische Datei.
Ansonsten wären vielleicht noch Apache Manuals bzgl. Mime-Type usw. interessant.
nein der Download wird schon dynamisch per PHP Script zusammengestellt - wie gesagt siehe auch vorigen Forenbeitag: https://forum.selfhtml.org/?t=148503&m=963551
über download.php?id=123 sucht PHP entsprechende Datei und gibt diese dann wie nachfolgend an den Browser aus:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $datei_name . '"');
header("Content-Length: $size");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
readfile($filename);
Hi,
Ich habe gerade feststellen müssen dass der Internet Explorer (Versionsübergreifend) von Dateien die per Header heruntergeladen werden ein paar KB vergisst/verliert etc. und somit die Datei kaputt macht. (Fehlermeldung im Adobe Reader "Beim Öffnen dieses Dokuments ist ein Fehler aufgetreten. Diese Datei ist beschädigt und kann nicht repariert werden")
bist Du sicher mit dem "versionsübergreifend"?
Wir haben in letzter Zeit sowas beim MSIE 6.X bemerkt.
Konqueror, Firefox und MSIE 7 hatten bei gleichen PDFs keine Probleme!
Der 6er hatte auch jedesmal was anderes zu "meckern", was die Sacher erschwert. Mal war angeblich der Header falsch, dann kam nur die Hälfte an.
Erklärung an einem Beispiel:
Ich lade die Datei test.pdf mit 130 KB auf den Server dort kommt es auch mit der vollen Dateigröße an (also 130 KB). Lade ich mir die selbe Datei über die Downloadschnittstelle mit dem Firefox herunter hat sie auch wieder 130KB und kann problemlos geöffnet werden. Wenn ich aber dieselbe Datei über den IE herunterlade kommt bei mir am PC nur ein test.pdf mit 100KB an und kann dementsprechend auch nicht mehr geöffnet werden weil beschädigt.Als wenn die Sache nicht schon merkwürdig genug wäre kommt diese "Dateibeschneidung" nur bei Dateien vor die in einem bestimmten Dateigrößenbereichen liegen: Also Dateien bis 110KB lässt er in Ruhe (lädt er korrekt herunter), bis 160KB gehts wieder nicht, bis 210KB funktionierts wieder einwandfrei usw.
Kannst Du das wirklich sicher sagen?
Ich wäre damit vorsichtig und halte es für einen Zufall bzw. von der Datei abhängig.
Versuch doch mal, ein Dokument auf verschiedene Art zu rendern:
Jedenfalls hatten wir das mal so probiert und:
obwohl die Qualität und Größe der Datei je nach Einstellungen sehr unterschiedlich war, ergab sich, daß der MSIE 6 anscheinend fast immer ein Problem hat.
Anscheinend hat sich irgendwas am PDF-Reader so geändert, daß er damit nicht mehr klar kommt bzw. das in letzter Zeit nicht mehr gepflegt wurde (warum auch, schließlich gibt es ja den Firefox).
Gruß
Reiner
bist Du sicher mit dem "versionsübergreifend"?
also zumindest zu den aktuell am meisten verwendeten Versionen 6.X & 7 auf diversen Plattformen (WIN XP, WIN Vista)
Als wenn die Sache nicht schon merkwürdig genug wäre kommt diese "Dateibeschneidung" nur bei Dateien vor die in einem bestimmten Dateigrößenbereichen liegen: Also Dateien bis 110KB lässt er in Ruhe (lädt er korrekt herunter), bis 160KB gehts wieder nicht, bis 210KB funktionierts wieder einwandfrei usw.
Kannst Du das wirklich sicher sagen?
Ich wäre damit vorsichtig und halte es für einen Zufall bzw. von der Datei abhängig.
Naja ich habs mit ca 50 Dateien verschiedener Größe probiert und dann als ich mir davon eine Liste gemacht hab dass alle "Fehlerhaften" und Korrekten Dateien oben beschriebene Blöcke zu ca je 50 KB bilden
Versuch doch mal, ein Dokument auf verschiedene Art zu rendern:
Die PDFs die hier rauf und runtergeladen werden haben nur ca 3 Ausgangsprogramme die eigentlich alle mit dem Acrobat Distiller arbeiten. Aber die Herkunft hat keine Auswirkung auf die Funktionsweise nur die Dateigröße
Also Datei A aus Programm X mit 100 KB geht mit 140KB nicht oder Datei B aus Programm Y mit 200KB geht mit 215KB wieder nicht...
(warum auch, schließlich gibt es ja den Firefox).
nur so am Rande: bisher haben alle beteiligten auch mit dem Firefox die ganze Sache bedient (-> ohne Probleme) nur jetzt hat sich der Benutzerkreis erweitert und die melden jetzt ein Problem nach dem andern (weil sie mit IE surfen) zwar kann ich denen empfehlen auf Firefox umzusteigen aber zwingen kann ich sie auch nicht ...
(warum auch, schließlich gibt es ja den Firefox).
nur so am Rande: bisher haben alle beteiligten auch mit dem Firefox die ganze Sache bedient (-> ohne Probleme) nur jetzt hat sich der Benutzerkreis erweitert und die melden jetzt ein Problem nach dem andern (weil sie mit IE surfen) zwar kann ich denen empfehlen auf Firefox umzusteigen aber zwingen kann ich sie auch nicht ...
doch:
fahr in den Urlaub und laß das Problem liegen.
Wenn Du wiederkommst, haben _alle_ Firefox installiert...
:-))
fahr in den Urlaub und laß das Problem liegen.
Wenn Du wiederkommst, haben _alle_ Firefox installiert...
wenn das Problem doch soo einfach zu beheben wär ...
Ich glaube aber nicht das es so schnell gehen wird dass jeder nur mehr mit dem Firefox surft (obwohl die unmögliche Bedienung des neuen IE wird das sicher beschleunigen ..)