Hallo.
Ok, gehen wir mal eben den Code (http://www.dclp-faq.de/q/q-datei-download.html) durch mit paar Kommentaren mehr und etwas auf Dich zugeschnittener.
Wir wollen die Datei blablub.jpg aus dem Verzeichnis c:/apache/geheim/ zum Download anbieten und blubber.gif aus c:/apache/geheim/test/
// $download sei der Bezeichner für die zu ladende Datei.
// Als Bezeichner wählen wir 'bla' bzw. 'blubber'.
$download = $_GET['download'];
// Dieses Verzeichnis liegt außerhalb des Document Root und
// ist nicht per URL erreichbar.
$basedir = "c:/apache/geheim";
// Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
"bla" => "blablub.jpg",
"blubber" => "test/blubber.gif"
);
// Einbruchsversuch abfangen. D.h. alles was wir nicht explizit als Download im Array benannt haben, löst eine Fehlermeldung aus.
if (!isset($filelist[$download]))
die("Datei $download nicht vorhanden.");
// Wenn soweit alles ok, erzeugen wir die nötigen Header damit die Datein nicht vom Browser geöffnet wird (Wollen ja einen Speicherdialog) und liefern die Datei an den Browser aus.
// Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);
// Passenden Datentyp erzeugen.
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);
Grüße aus Würzburg
Julian
"machines will eat itself." Bau Dir Deinen eigenen Bot.
http://www.hgb-leipzig.de:83/~franz/hyperportrait/testers/