Hallo,
ich habe aus der php-faq nachfolgendes Script an meine Bedürfnisse
angepasst, den Teil der für Speichern der Downloads zuständig ist habe
ich nicht geposted:
<?
// $download sei der Bezeichner für die zu ladende Datei
// etwa:
$download = $_GET['download'];
// Dieses Verzeichnis liegt außerhalb des Document Root und
// ist nicht per URL erreichbar.
$basedir = "/home/www/..../download";
// Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
"file1" => "datei1.pdf",
"file2" => "datei2.pdf",
"file3" => "datei3.pdf",
"file4" => "datei4.pdf",
"file5" => "datei5.pdf",
"file6" => "datei6.pdf",
"file7" => "datei7.pdf",
"file8" => "datei8.pdf",
"file9" => "datei9.pdf"
);
// Einbruchsversuch abfangen.
if (!isset($filelist[$download]))
die("Datei $download nicht vorhanden.");
// Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);
#$filename=$filelist[$download];
// Passenden Datentyp erzeugen.
if (preg_match('#Opera(/| )([0-9].[0-9]{1,2})#',
getenv('HTTP_USER_AGENT')) or preg_match('#MSIE ([0-9].[0-9]{1,2})#',
getenv('HTTP_USER_AGENT'))) {
header("Content-Type: application/octetstream");
} else {
header("Content-Type: application/octet-stream");
}
// Passenden Dateinamen im Download-Requester vorgeben,
// z. B. den Original-Dateinamen
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: attachment; filename=\"$save_as_name\"");
// Datei ausgeben.
readfile($filename);
?>
Alles klappt solange meine Firewall (Norton2005) nicht aktiv ist.
Sobald ich diese aktiviere werden die PDF's vom AcrobatReader als
"beschädigt" abgelehnt.
Hat jemand diese Erfahrung auch gemacht und eine Lösung gefunden?