Mailinglisten-Archive |
Hallo Liste,
ich verwende das Download-Script von www.php-center.de etwas
abgeändert. Eine PDF-Datei soll sich direkt im Reader öffnen, klappt
auch. Aber sobald ich auf "Speichern" klicke wird als Dateiname der
Name des PHP-Files vorgegeben und nicht der eigentliche PDF-Dateiname.
Wie kriege ich es hin, das der original Dateiname vorgegeben wird?
Das Downloadscript sieht so aus:
Der Aufruf sieht so aus:
http://www.meinesite.de/lesen.php?download=bev1
<?php
# $download sei der Bezeichner für die zu ladende Datei
# Dieses Verzeichnis liegt außerhalb der Document_Root und
# ist nicht per URL zuzugreifen.
$basedir = "/var/www/download/chor";
# Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
"bev1" => "pdf/bev1.pdf",
"bev2" => "pdf/bev2.pdf"
);
# Einbruchsversuch abfangen.
if ($filelist[$download] == "")
die("Datei $download existiert nicht.");
# Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);
# Passenden Datentyp erzeugen.
header("Content-Type: application/pdf");
# Passenden Dateinamen im Download-Requester vorgeben,
# z.B. den Original-Dateinamen
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: download; filename=\"".$save_as_name."\"");
# Datei ausgeben.
readfile($filename);
?>
Gruss Roland
php::bar PHP Wiki - Listenarchive