Когда то на форуме была статья с полным описанием... щас нету... но в своё время я ее сохранил... Почитай вот => ЗДЕСЬ <=
Решить можно проще! Фалы лежат не в web директории, пути к файлам в базе, так можно ограничить доступ пользователей, будет просто генирироваться адрес, ну например учитывающий кукки, потом уже скрипт проверяет этот адрес на соответсвие, и т.д. Может я и не прав но это самый надежный способ!
Не знаю решена проблема или нет, но есть идеальное решение. Принцип прост. Кладем наш _файл_ в директорию, не важно какую, но пусть в самом тяжелом случае это будет веб дира. Далее пишем скрипт, который будет читать из этого файла и выводить в поток. Далее озаботимся тем чтобы файл нельзя было скачать напрямую: 1. Кладем в веб диру .htaccess который делает невозможным прямое обращение к файлу, есть несколько способов, меняются под конкретные задачи. Пропускаем второй пункт, читаем следующий абзац. Интерактив прям ) 2. Если вообще нет возможности использования .htaccess читаем дальше. Папку с нашим секретным понтовым файлом обзываем например так tinevidiwetupapo4kutinetelepat. Сам скрипт кладем на уровень выше и в скрипте, непосредственно в коде, указываем путь что типа "./tinevidiwetupapo4kutinetelepat/".$file." . Отлично. Теперь смотрим что мы имеем. Пользователь заходит на страничку, видит линк на скачку вида http://pustbudetantichat.ru/downloads.php?file=bibliya.pdf. Скрипт начинает его считывать и возвращать пользователю, при этом пользователь так и не узнает где-же всё-таки лежит файл. Всё. Теперь осталось прикрутить авторизацию для того чтобы все подряд не могли качать, если нужно сделать чтобы кто-то мог, а кто-то нет, то уже разбиваем пользователей на группы. Для ещё большего усложнения и сокрытия непоредственно имени файла можно использовать БД и линк на скачку приобретёт вид http://pustbudetantichat.ru/downloads.php?file=31337, но это уже всё вариации, задача решена. На самом деле требуемый для этих целей php скрипт давно уже существует и называется NDL (No Direct Links), ищется в инете и поставляется с понятными examples.
Как вариат можно использовать дополнительный модуль download для vbulletin, немного переделать и все. Файлы храняться с рандомнымыми именами + htaccess _http://vbsupport.org/forum/showthread.php?t=7266&highlight=downloads
1. Авторизуются, значит есть запись в базе. Пользователям в базу добавляются логические поля с названием папок (или скажем так: уровень доступа, можно сделать одно поле, но тогда каждому значению соответствует свой набор разрешённых директорий), в поля записывается флаг на скачку разрешено/запрещено (Да/Нет). Далее, перед скачкой, скрипт проверяет значение соответстующего поля конкретного пользователя (с именем названия папки) и в этом случае копирует или не копирует файл во временную папку. 2. - Для скачиваемых файлов придётся сделать разные папки в зависимости от уровня доступа. 3. Запрошенный файл копируется во временную директорию, случайный URL (название папки) 4. Ссылка на скачивание формируется динамически с этим случайным URL , её выдаёт скрипт, затем скрипт автоматически удаляет файл после скачки пользователем (или через некоторое время).
Так уже год прошел со дня последнего поста, мб неактуал, как думаете? хотя все же почитать интересно было.