So ich hab dir mal kurz was gebastelt, funktioniert allerdings nur für ZIP Dateien.
Lege dir einen Ordner in deinem Forum an (z.B. /dateien/), dann erstellst du dir mit meinem Code eine neue PHP Datei (z.B. download.php) und lädst sie in den neuen Ordner. Wenn du jetzt eine Zip Datei mit dem Namen test1.zip mit in den Ordner lädst kannst du sie über .../dateien/download.php?id=1 runter laden, das funktioniert aber nur für angemeldete Benutzer, Gäste bekommen die Login Box angezeigt. Wenn du jetzt immer nur solche Links raus gibst erfährt niemand wo die Datei wirklich liegt und so kann die Datei auch nur von angemeldeten Benutzern runter geladen werden.
Am Anfang des Scripts kannst du angeben welche Datei welche ID haben soll, ändre das einfach in deine Dateien ab.
Code: Alles auswählen
<?php
// Hier die Dateien angeben die es zum Download geben soll
$files[1] = 'test1.zip'; //download.php?id=1 läd test1.zip runter
$files[2] = 'test2.zip'; //download.php?id=2 läd test2.zip runter
$files[3] = 'test3.zip'; //download.php?id=3 läd test3.zip runter
// Ab hier nichts mehr ändern
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
if ($user->data['user_id'] == ANONYMOUS)
{
login_box('', $user->lang['LOGIN']);
}
$file_id = request_var('id', 0);
header('Content-type: application/octet-stream');
header("Content-Type: zip");
header('Content-disposition: attachment; filename=' . $files[$file_id]);
$handle = fopen($files[$file_id], r);
$contents = fread($handle, filesize($files[$file_id]));
fclose($handle);
echo $contents;
?>
Man könnte das ganze jetzt noch ausbauen und die Rechtevergabe dynamisch machen oder die Datei-Liste in der DB speichern aber das sollte so auch erstmal funktionieren.
Gruß Tobi