Контролируемое скачивание
Скачать файл
manual.zip
Скачать файл
private_file.zip
На многих сайтах требуется организовать контролируемое скачивание общедоступных файлов или файлов с ограниченным доступом.
В каталоге
/examples/download/ находится пример скачивания общедоступных файлов с сайта с фиксацией событий в модуле статистики. Все файлы для скачивания лежат в каталоге
/examples/download/files/.
При создании ссылки на файл для скачивания каталог
/files/ не указывается.
При клике по созданной ссылке вызывается файл, указанный как обработчик 404 ошибки в файле
.htaccess в текущем каталоге. В нашем примере это файл
download.php.
В этом же каталоге есть скрипт
download_balance.php.
Он позволяет регулировать нагрузку скачиваний между несколькими серверами.
На этих серверах должны быть абсолютно идентичные каталоги
/download/
с одинаковым набором файлов и подкаталогов.
Для того чтобы подключить этот скрипт необходимо:
- В файле .htaccess установить обработчик 404 ошибки на этот скрипт.
- В скрипте download_balance.php раскомментировать массив $arrHOSTS и задать в нем адреса серверов для скачиваний и вероятности выбора того или иного сервера.
Для того чтобы система разрешала скачивать файлы всем без авторизации,
необходимо в корне сайта разместить файл
.access.php со следующим содержимым:
<?
$PERM["/"]["*"]="R";
?>
В каталоге
/examples/download/download_private/ приведен пример реализации скачивания файлов с ограниченным доступом с фиксацией события в модуле статистики.
Все файлы лежат в каталоге
/examples/download/download_private/files/, а ссылка на файл для скачивания имеет вид:
<a href="/examples/download/download_private/private_file.zip"> private_file.zip</a> (т.е. без каталога /files/).
Настройки произведены таким образом, что только зарегистрированные пользователи имеют право на скачивание этого файла из каталога. Доступ на чтение каталога
/files имеют только зарегистрированные пользователи.
Файл
download_private.php вызывается в этом случае как обработчик 404 ошибки.