Helmut: Probleme beim PDF download

Hallo,

auf seite.php möchte ich statische PDF-Dateien zum Download
anbieten. Bei Klick auf einen Link

<a href="seite.php?pdfname=$row[pdf]">Diese Datei als PDF downloaden</a

wird die Seite also nochmal aufgerufen, am Ende der Seite steht dieses
Script, das den Download einleiten soll.

<?

if(!$pdfname=="") {

header("Content-type: application/pdf");
   header("Content-disposition: attachment; filename='./$pdfname'");
   }

?>

Der Downloaddialog startet auch tatsächlich, nur erkennt der Browser (IE5.5)
irgendwie nicht, dass es sich um ein PDF handeln soll. Es wird nicht
der Dateiname *.pdf beim Abspeichern angeboten. Das abgespeicherte
File ist anschliessend nicht lesbar. Ein etwa 90 K grosses PDF wird
auf 8k gequetscht.

Was mache ich falsch? Habt Ihr eine Idee?

Danke

Helmut

  1. Hallo,

    Im PHP-Manual http://de.php.net/header gibt es ein paar User-Kommentare zum Thema. Ich hab mich neulich damit beschaeftigt eine sql-Datei zum Download anzubieten und fand das sehr hilfreich.

    Meine Loesung hilft Dir vielleicht weiter:

    $file     = $_GET['file'];
    $filesize = filesize($_GET['dir'] . '/' . $file);
    $handle   = fopen($_GET['dir'] . '/' . $file, 'rb');
    $buffer   = fread($handle, $filesize);
                fclose($handle);

    header('Expires: Mon, 26 Jul 2001 05:00:00 GMT');
    header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header('Pragma: no-cache');
    header('Cache-control: private');
    header('Content-type: ' . $_GET['mime']);
    header('Content-Length: ' . $filesize);
    header('Content-Disposition: attachment; filename=' . $file);

    print $buffer;

    Dieter