Каталог

Контролируемое скачивание

Скачать файл manual.zip

Скачать файл private_file.zip

На многих сайтах требуется организовать контролируемое скачивание общедоступных файлов или файлов с ограниченным доступом.

В каталоге /examples/download/ находится пример скачивания общедоступных файлов с сайта с фиксацией событий в модуле статистики. Все файлы для скачивания лежат в каталоге /examples/download/files/. При создании ссылки на файл для скачивания каталог /files/ не указывается.

При клике по созданной ссылке вызывается файл, указанный как обработчик 404 ошибки в файле .htaccess в текущем каталоге. В нашем примере это файл download.php.

В этом же каталоге есть скрипт download_balance.php. Он позволяет регулировать нагрузку скачиваний между несколькими серверами. На этих серверах должны быть абсолютно идентичные каталоги /download/ с одинаковым набором файлов и подкаталогов.
Для того чтобы подключить этот скрипт необходимо:
  1. В файле .htaccess установить обработчик 404 ошибки на этот скрипт.
  2. В скрипте 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 ошибки.