Php-Code:
<?php
// Die folgende Datei kann in einem beliebigen, von PHP erreichbaren
// Verzeichnis liegen, dieses kann auch nach aussen per .htaccess o.ä.
// geschützt werden
$file = "downloads/datei.zip";
$name = "dateiname.zip"; // Name, unter welchem die Datei an den Browser geschickt wird
header("Content-type: application/octet-stream");
// Anstatt "attachment" kann auch "inline" gewählt werden, damit der Browser
// die Datei normal darstellen kann und nicht immer der "Speichern unter"-Dialog erscheint
header("Content-disposition: attachment; filename=".$name);
header("Content-Length: ".filesize($file));
readfile($file);
?>
Bereits mit diesen einfachen Befehlen wird das direkte Herunterladen einer Datei verhindert. Nun kann man weitere Überprüfungen nach Zugriffrechten, dem Referer etc. einbauen, um so z.B. ein Hotlinking von fremden Seiten zu verhindern.