В общем требуется такой скрипт. 1) Пользователи авторизуются на сайте. 2) Можно давать разрешение на скачку определенных файлов и запрещать доступ к определенным файлам. Интересны будут ваши идеи насчет того, как ограничить доступ к фалам не использую htaccess
Наверно скажу глупость но.... Может быть так же как на форуме? Допустим, человек решил скачать файл который не доступен для всех, при нажатии на ссылку скрипт будет проверять к какой группе человек относится, если к той группе которая разрешена то качает, если нет то выдает сообщение об ошибке... Если я неправильно понял вопрос то растолкуй поподробнее.... Код вряд ли смогу написать но идейку могу подкинуть..... И ногами не бейте если что то не то написал...
Во первых на форуме часто фалы хранятся в базе. И тем самым ограничивается доступ к файлам. Если файлы хранятся не в базе, то имея прямую ссылку на файл его может скачать любой человек.
2Егорыч+++ то есть тебе нужно чтобы файлы были на серваке. Можно попробовать сделать динамический адрес с помощью mod_rewrite Кстати вот например хост народ.ру как то же ограничивает свои файлы даже когда ты тыкаеш на прямую ссылку. Та же система на Рапидшаре... Может быть от этого оттолкнутся?
Ну, может как вариант (не самый красивый), при начале скачивания, проверить - можно или нет пользователю скачивать, нет - пшел вон, можно - создается временный каталог (md5(дата)), в который копируется файл, после чего дается ссылка на скачку. Через день удаляется (запуск cron-ом).
А мне кажется, создать для определенного пользователя определенный список файлов, которые ему можно скачивать и генерировать временную уникальную ссылку, если хочет скачать его. upd: censored! раньше написал
Можно глянуть чужие скрипты. Как у них. Например, то что тебе надо: http://script.woweb.ru/index.htm/id/1052917030 Но в регете/флашгете будет светиться. Поэтому по-любому надо во временную папку пихать.
2Егорыч+++, а может быть не пихать во временную папку а каждому файлу создавать свою папку и раз в какой то промежуток времени ее переименовывать. Допустим каждый час или два... Так то наверно легче будет чем файлы бросать из одной папки в другую.
а файл переименовывать? как-то копался в движке интернет-магазниа музкой - у них папка, в которой статически(!) лежат все файлы, когда юзер файл покупает - нужный ему файл кладут в рандомную папку, которую просто потом удаляют через 12 часов. хотя можно и меньше времени давать... ЗЫ основная папка со всем контентом у них не была ничем защищена а алгоритм генерирования имени папки (новой) - приметивен (чтоб если файл качает 1000 юзеров - не копировать 1000 папок, а давать линк каждому один и тот же) (имя папки зависит от даты и от названия трека + слово (константа из конфигов))
Ярлык то ведет на реальный файл. А если файл переименовывать - то хорошо когда один пользователь. А если их сто и они одновременно собираются качать - то скачает последний. Да и надо записывать где-нить какой файл как уже называется. антилич - он вроде не для скрытия ссылок, а для проверки - откуда пытаются скачать, и если не с сервера - посылать.
не смогут скачать? ты купил ссылку, у тебя есть 12 часов на скачку файла. работает примерно так: каждые 12 часов заводят новую копию файла (если есть на него запрос), если с времени завода последней прошло более 12 часов - ее удаляют (это уже cron поработает) как это ссылки не помогают? а если это ссылка в файловой системе линуха? раскрывает путь на файл? а команда unlink по прошествии 12 часов? нерезус правильно про линки заметил!
Наверное тут только один выход. Файл лежит где то там на серваке. Решил пользователь его скачать. Нажал на ссылку. Файл копируется из этого места где он лежал и переносится в только что созданную папку с случайным названием. А оттуда уже качается после скачки папка вместе с файлом удаляются.
определять, что файл скачали - муторно.... хотя осущесттвимо, но бездумноге копирование кучи файлов - имхо бред - возможность выведения сервера из строя - заполнения пространства, если оно не залимитировано
С копированием большой недостаток и с ярлыками тоже . Нельзя определить был скачен файл или нет для удаления этого.