Acrobat Dokument will er nicht öffnen?
Christoph
- php
Hallo,
ich hab ein interessantes Problem: Ich habe eine download Seite wo man sich 2 pdf´s downloaden kann. Diese Dokumente haben auch eine id.
Mit diesem php Code lass ich Sie quasi downloaden:
if($fd = fopen($file_path, "rb"))
{
$fsize = filesize($file_path);
$fname = basename($file_path);
header("Expires: Mon, 26 Nov 1962 00:00:00 GMT");
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Transfer-Encoding: none");
header("Content-type: application/x-download");
header("Content-Disposition: attachment; filename=".$fname.";");
header("Accept-Ranges: bytes");
header("Content-length: ".$fsize);
while(!feof($fd))
{
$buffer = fread($fd, 2048);
print $buffer;
}
fclose($fd);
}
Das funktioniert auch soweit ganz gut. Wenn ich sage, speichern unter dann speichert er mir die Datei ab und wenn ich dann auf öffnen klicke, öffnet er Sie mir auch super. Sage ich jedoch, sofort öffnen, dann downloaded er die Datei, öffnen Acrobat Reader und dann meint er: Datei existiert nicht! Obwohl er ja die Datei eben runtergeladen hat! Das Problem tritt nur beim IE auf. Im Firefox gehts ja wie immer... Aber eben nur beim direkten öffnen. Nun dachte ich, dass das vielleicht an meinem php Code liegt? Hat schonmal jemand diese Erfahrung gemacht?
Beim IE unter Internetoptionen/Sicherheit usw. ist kein Häkchen gesetzt übrigens! Auch im Acrobat Reader selber das Häkchen gesetzt, dass er PDF´s im Browser anzeigen kann, geht ja auch bei jeder anderen normalen Webseite nur bei mir net :/
Über jeden Tip bin ich dankbar!
Grüße
Christoph
Hm, komisch, jetzt hab ich das hier versucht:
$file = $file_path;
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($file));
@readfile($file);
und siehe da, es geht... verstehen muss ich das nicht...
Christoph