<?php /** * Создание символической ссылки на файл * автор: Nc_Soft * 03.01.09 */ /* Имеется некоторая защищенная директория (deny from all), в которой лежат файлы 1.mp3 2.mp3 3.mp3 итп Задача выдать эти файлы с произвольным именем юзеру по запросу */ //защищенная директория $private_dir=$_SERVER['DOCUMENT_ROOT'].'/private'; //создадим доступную директорию public с правами 777 $public_dir=$_SERVER['DOCUMENT_ROOT'].'/public'; /*в директорию public будем класть символические ссылки. Обращаю внимание, что символические ссылки ничего не весят. Допустим, мы хотим выдать ссылку на файл /private/1.mp3 в виде /public/mega_hit_track.mp3 */ //создаем символическую ссылку if (symlink($private_dir.'/1.mp3', $public_dir.'/mega_hit_track.mp3')) { //выдаем ссылку юзеру echo '<a href="http://'.$_SERVER['HTTP_HOST'].'public/mega_hit_track.mp3">скачать</a>'; } else { echo 'ошибка генерации ссылки'; } /*в папке public создалась символическая ссылка mega_hit_track.mp3 обращение http://'.$_SERVER['HTTP_HOST'].'public/mega_hit_track.mp3 приведет к скачиванию статичного файла /private/1.mp3 из папки Преимущества символических ссылок: -ссылки можно генерировать на лету -можно сделать несколько разных ссылок на один и тот же файл -с символическими ссылками можно работать как с файлами и каталогами (удаление/перемешение/переименование) Недостатки: -работает только в Linux */ ?>