Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> алгоритм отдачи файла 
:(
    Опции темы
mr.fox
Дата 20.11.2005, 04:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 13.3.2005
Где: Ирландия

Репутация: нет
Всего: 2



Есть сайт, который торгует мелодиями, картинками (и тд) для телефонов.
Так вот, я никак не придумаю, как лучше отдавать файл на скачку пользователю?
Прямых линков давать нельзя!
Я думаю копировать файлик на время в папку какуюнибудь и отдавать на закачку, а потом удалять его оттуда через энном кол-во минут, которые высчитает алгоритм.
МОжет другие идеии будут? smile
PM MAIL WWW ICQ   Вверх
Coder
Дата 20.11.2005, 06:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



Код

// отдаем пользователю файл для загрузки
  $get_name="file.zip"; // имя которое увидит пользователь
  $true_name="mWhilvs5tY9a9l3oRL83.zip"; // настоящее имя файла
  $f_size=filesize($true_name);
  header("Content-type: application/zip");
  header("Content-Disposition: attachment; filename=".$get_name.";");
  header("Accept-Ranges: bytes");
  header("Content-Length: ".$f_size);
  readfile($true_name);


только при использовании этого способа в .PHP файле не должно быть HTML тегов, иначе код не будет работать.
PM MAIL   Вверх
mr.fox
Дата 20.11.2005, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 13.3.2005
Где: Ирландия

Репутация: нет
Всего: 2



Coder, спасибо, хороший пример!
Я вот думаю, а если запоролить дирегторию, будет вся эта чепуха работать?
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 20.11.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Где- то я уже это описывал...
Суть такая.
Таблица первая - сессии.
В БД храним реальное и мнимое имя файла. Мнимое -
Код
$get_name="file.zip"

При апложе файла, его реальное имя пишется в базу, как мнимое, а на сервер он уже сохраняется под sdkfhn478h238y3r87y2.zip.
В тот момент, когда пользователь хочет скачать файл. Мы в таблицу сессий заносим какой-ть любой идентификатор аля md5, время через которое он умрет и ID файла.
Далее, пользователя перекидываем на линк: server.ru/download/идентификатор аля md5/
В скрипте проверяем этот идентификатор и время жизни сессии. Если все нормально, то отдаем файл пользователю в принципе так, как показад Coder, подставляя в переменные нужные значения из БД.

Замечания: 1. Надо время от времени чистить таблицу сессий.
2. Надо немножко с mod_rewrite похимичить.
PM ICQ   Вверх
AntonioBanderaz
Дата 20.11.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Цитата(Mal @ 20.11.2005, 14:01)
1. Надо время от времени чистить таблицу сессий.

А если при каждом действии любого польз проверять базу и удалять старые данные?


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Mal Hack
Дата 20.11.2005, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(AntonioBanderaz @ 20.11.2005, 18:16)
А если при каждом действии любого польз проверять базу и удалять старые данные?

Лишняя нагрузка. ИМХО, лучше раз в сутки из под CRON'a запускать скрипт очистки.
PM ICQ   Вверх
AkimVital
Дата 4.12.2005, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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Кб и пишет их в буфер.
PM MAIL   Вверх
anka
Дата 19.12.2006, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 18.9.2006
Где: Azerbaijan

Репутация: нет
Всего: нет



$filename="img.gif"
base64_encode($filename);
PM MAIL WWW ICQ   Вверх
Alex13
Дата 19.12.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 30.12.2005
Где: Новосибирск

Репутация: нет
Всего: 1



mr.fox, я думаю, этот топик может помочь решить проблему: http://xpoint.ru/forums/programming/PHP/thread/20714.xhtml

Это сообщение отредактировал(а) Alex13 - 29.12.2006, 08:35


--------------------
Самая страшная ошибка - это ошибка, не имеющая явных причин и конкретных последствий.
Антисоциальный блог.
PM WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1091 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.