![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
mr.fox |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.3.2005 Где: Ирландия Репутация: нет Всего: 2 |
Есть сайт, который торгует мелодиями, картинками (и тд) для телефонов.
Так вот, я никак не придумаю, как лучше отдавать файл на скачку пользователю? Прямых линков давать нельзя! Я думаю копировать файлик на время в папку какуюнибудь и отдавать на закачку, а потом удалять его оттуда через энном кол-во минут, которые высчитает алгоритм. МОжет другие идеии будут? ![]() |
|||
|
||||
Coder |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 733 Регистрация: 13.12.2004 Репутация: 1 Всего: 11 |
только при использовании этого способа в .PHP файле не должно быть HTML тегов, иначе код не будет работать. |
|||
|
||||
mr.fox |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.3.2005 Где: Ирландия Репутация: нет Всего: 2 |
Coder, спасибо, хороший пример!
Я вот думаю, а если запоролить дирегторию, будет вся эта чепуха работать? |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Где- то я уже это описывал...
Суть такая. Таблица первая - сессии. В БД храним реальное и мнимое имя файла. Мнимое -
При апложе файла, его реальное имя пишется в базу, как мнимое, а на сервер он уже сохраняется под sdkfhn478h238y3r87y2.zip. В тот момент, когда пользователь хочет скачать файл. Мы в таблицу сессий заносим какой-ть любой идентификатор аля md5, время через которое он умрет и ID файла. Далее, пользователя перекидываем на линк: server.ru/download/идентификатор аля md5/ В скрипте проверяем этот идентификатор и время жизни сессии. Если все нормально, то отдаем файл пользователю в принципе так, как показад Coder, подставляя в переменные нужные значения из БД. Замечания: 1. Надо время от времени чистить таблицу сессий. 2. Надо немножко с mod_rewrite похимичить. |
|||
|
||||
AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
А если при каждом действии любого польз проверять базу и удалять старые данные? -------------------- ГЫ... |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Лишняя нагрузка. ИМХО, лучше раз в сутки из под CRON'a запускать скрипт очистки. |
|||
|
||||
AkimVital |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 25.11.2005 Репутация: нет Всего: нет |
Можно сделать скрипт на PHP с использованиеь Rewrite Engine, преобразовывающий запросы типа host.com/file/name.mp3
в host.com/script.php?file=name.mp3 Скрипт принимает запрос авторизованного пользователя, и в отдельной таблице базы данных закачек проверяет, разрешено ли этому пользователю качать файл $file, (таблица типа: field1_user_id(int), field2_filepath(string)). После чего читает файл по 4Кб и пишет их в буфер. |
|||
|
||||
anka |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.9.2006 Где: Azerbaijan Репутация: нет Всего: нет |
$filename="img.gif"
base64_encode($filename); |
|||
|
||||
Alex13 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 30.12.2005 Где: Новосибирск Репутация: нет Всего: 1 |
mr.fox, я думаю, этот топик может помочь решить проблему: http://xpoint.ru/forums/programming/PHP/thread/20714.xhtml
Это сообщение отредактировал(а) Alex13 - 29.12.2006, 08:35 -------------------- Самая страшная ошибка - это ошибка, не имеющая явных причин и конкретных последствий. Антисоциальный блог. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |