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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файлов по паролю с поддержкой докачки 
:(
    Опции темы
Dionysius
Дата 22.8.2007, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Условие задачи:
Нужно отдавать прайс зарегистрированным пользователям. Причём каждый авторизованный пользователь может скачать прайс только один раз. Повторить скачивание он может после того, как будет выложен новый прайс.
Клиент вводит свои логин и пароль. При удачном скачивании в базе сохраняется дата загрузки файла.

Эту задачу я решил с помощью pear-класса HTTP_Download. Но в данном случае не получается реализовать докачку через программы - менеджеры загрузок (например, Download Manager).

Вот код моего решения:
Код

   $params = array(
      'file'                => 'path_to_file/price.zip',
      'contenttype'         => 'application/zip',
      'contentdisposition'  => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.zip'),
      'cache'               => false
      );
      $error = HTTP_Download::staticSend($params, false); //отдаём файл
      if ($error === true) {
           //если файл загружен успешно, обновляем дату последней закачки
      }


Конечно, это малонадёжный вариант, но порой срабатывает. А сегодня утром один клиент даже умудрился воспользоваться докачкой.
Но я вообще интересуюсь, может, есть какие-то другие способы?
Например, можно делать временную ссылку на файл, которая по истечении какого-то периода времени будет удалена. Недостаток здесь тот, что она будет на этот период доступна всем, кому клиент захочет её передать.
PM MAIL WWW   Вверх
Diesel Draft
Дата 22.8.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

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



Я вот не понимаю почему только один рас. Это значит что если он будет катать стандартным ІЕ и у него будет сбой то пройдется ждать следующего обновления.
Можешь создать силку, которая буде специально сгенерирована именно для этого пользователя. Например http://mysite/dprice.php?id=ndndndndnd . Например id это MD5 код од имени пользователя и даты обновления. Потом когда качаешь ты перевертыш этот пользователь или нет. А в коде просто делаешь readfile() для отдачи файла


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Dionysius
Дата 22.8.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Diesel Draft, вот как раз если б стандартным IE, то проблем не будет. В этом случае при разрыве соединения $error будет !== true.
А условия задачи поставило начальство. Хотя, конечно, сам файл клиенты могут рассылать по почте кому захотят.
Наверно, более оптимальным вариантом всё-таки будет создание временных ссылок для клиентов.
PM MAIL WWW   Вверх
Diesel Draft
Дата 22.8.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

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



я просто не вижу другого нормального решения


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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