lexa, без всяких редиректов. Ща попытаюсь россказать более детально. В рамках сессии создаются переменные сессии(со случайным названием с шифрованием md5), которые содержат имена файлов, каждый зарег. юзер имеет на доступе конкретный список файлов(хранится в бд) . Каждый файл имеет свою ссылку, которая содержит имя переменной. При каждом обновлении ссылки меняются, тоесть сами переменные тоже ансетяца и меняются. При нажатии на ссылку скрипт отдает файл, после проверки сущ. переменной и файла. Доступ на папку с файлами закрыт. Короче обьяснить я толком не могу, пример как нить скину.
У меня вот есть вопрос: а почему бы не отдавать файл через символическую ссылку, генерируемую для конкретного пользователя, и знать об этой ссылке будет только один пользователь. А через некоторое время ссылка удаляется. Какие потенциальные проблемы у такого решения?
? PHP: if (!function_exists('symlink') and strtolower(substr(PHP_OS, 0, 3)) == 'win'){ function symlink($target, $link){ return exec('mklink "'.str_replace('/', '\\', $link).'" "'.str_replace('/', '\\', $target).'"'); } }
Видимо вы не правильно меня поняли... причем тут винда, причем тут фат или нтфс... причем тут редиректы.... это мне кажется проще простого... Из того что я написал, вывод один, для юзера генеряца произвольные ссылки, доступ к папке с файлами закрыт. После обновления страницы ссылки генеряца заново. Скрипт отдает файл.
gugi Необходимо учесть, какой размер у файла и как пользователь будет его качать. Если файл маленький и закачка из броузера - можно и простым скриптом. А если файл большой и пользователь будет скачивать менеджером закачек, с возможностью докачки в случае обрыва связи - скрипт значительно усложнится.
gugi, мы просто думаем каким методом можно пользоваться. Теория тоже полезна. А вот твой метод я так и не понял. Ты используешь тот код, который я дал или свой? Если свой, то какой? mmaavv прааильно заметил, очень много зависит от размера файла. Большой файл может загнуть сервер.