Контролируемое скачивание
Скачать файл private_file.zip
На многих сайтах требуется организовать контролируемое скачивание общедоступных файлов или файлов с ограниченным доступом.
В каталоге /examples/download/ находится пример скачивания общедоступных файлов с сайта с фиксацией событий в модуле статистики. Все файлы для скачивания лежат в каталоге /examples/download/files/. При создании ссылки на файл для скачивания каталог /files/ не указывается.
При клике по созданной ссылке вызывается файл, указанный как обработчик 404 ошибки в файле .htaccess в текущем каталоге. В нашем примере это файл download.php.
В этом же каталоге есть скрипт download_balance.php. Он позволяет регулировать нагрузку скачиваний между несколькими серверами. На этих серверах должны быть абсолютно идентичные каталоги /download/ с одинаковым набором файлов и подкаталогов.
Для того чтобы подключить этот скрипт необходимо:
- В файле .htaccess установить обработчик 404 ошибки на этот скрипт.
- В скрипте download_balance.php раскомментировать массив $arrHOSTS и задать в нем адреса серверов для скачиваний и вероятности выбора того или иного сервера.
<?
$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 ошибки.