Chrome hat das "Failed to load PDF-Dokument" Fehlermeldung auf inline-PDF-Dateien
Ich habe ein problem mit dem Lesen der pdf-Datei in Chrome mittels PHP.
Folgende code ist, wie ich in PHP
$path = "actually file path";
header("Pragma: public");
header("Expires: 0");
header("Content-type: $content_type");
header('Cache-Control: private', FALSE);
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Disposition: inline; filename=\"$filename\"");
header('Content-Transfer-Encoding: binary');
header('Content-Length' . filesize($path));
ob_clean();
flush();
readfile($path);
Hier, habe ich den " Content-Disposition inline. Denn ich möchte die Anzeige der pdf-Datei, wenn der Benutzer browser-build-in pdf-viewer-plugin. Wie Sie vielleicht wissen, Chrome hat build-in pdf-viewer.
Das problem ist, ich habe Haufen von pdf-Dateien auf dem server. Nur einige von Ihnen eingesehen werden kann, die von Chrome. Ich kann nicht herausfinden, warum andere nicht in die gleiche Weise arbeiten. Ich habe die Erlaubnis der einzelnen Dateien. Wie es aussieht, nicht die Erlaubnis problem.
Ist da jemand, der weiß, was das problem ist? Danke.
Ich versuche, die. Beide können heruntergeladen werden und Aussehen wie das gleiche. Ich Vergleiche auch, dass mit der Datei auf dem server. Sie sind die gleichen. Wenn ich wechseln Sie zurück zu " Content-disposition: inline. Es funktioniert einfach nicht. 🙁 Ich habe sogar vergleichen Sie die response-header. Sie sind die gleichen.
Was passiert, wenn Sie versuchen, die Sicht eines direkt statt über Ihr Skript?
Sie können anzeigen, die direkt und ohne Umweg über das script.
Dann was ist der Sinn des Skripts?
InformationsquelleAutor easycoder | 2011-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe wrestling mit diesem gleichen Problem. Dies ist so nah wie ich bekommen, um konsistente Ergebnisse zwischen den Browsern. Ich denke, dass der Grund, warum Sie möglicherweise Probleme, wenn Sie einige PDF-Dateien sind zu groß für readfile() zu behandeln, richtig. Versuchen Sie dies:
es scheint nicht richtig arbeiten... 🙁
Funktioniert das nicht für alle browser oder nur Chrome? Sie könnten versuchen, ändern der Größe des buffer von 1024 bis etwas kleiner. Wenn $Datei vollständigen Pfad zu Ihrem Dokument das funktionieren sollte. Beachten Sie auch, die $myFileName variable in einem Header. Das muss eingestellt werden oder entfernt werden.
Ich scheine immer eine unendliche Last-Bildschirm.
Guter Ruf auf dem ob_clean() und flush()
InformationsquelleAutor mingala
habe ich Feste dieser Art
InformationsquelleAutor Esteban Alarcon
Hatte das gleiche problem, chrome nicht anzeigen, inline PDF, stecken beim laden. Die Lösung war, fügen
header('Accept-Ranges: bytes')
.Mein kompletter code:
InformationsquelleAutor xor
Ich hatte ähnliche Problem, aber ich bemerkte die Reihenfolge ist wichtig. Scheint, dass
; filename=
müssen Anführungszeichen um ihn herum,Content-Disposition: attachment
Versuchen Sie dies:InformationsquelleAutor Kal