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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уникальная ссылка на скачивание файла 
:(
    Опции темы
Alex103
Дата 22.9.2009, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

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



Добрый вечер.
Подскажите пожалуйста как сделать следующее. Я у себя на сайте хочу сделать продажу ссылок, смысл в том чтобы после покупки через WM merchant пользователю должна генерироваться уникальная ссылка которая будет доступна в течении суток а потом будет удаляться.
Вот ссылка на файл:
http://mysite.com/file.rar
нужно получить что-то в виде:
http://mysite.com/file_22.09.09.rar
Или может к времени привязывать? Натолкните на мысль.


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
StachelDraht
Дата 22.9.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не Опытный
**


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

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



а можно и не привязывать ко времени.
генерируешь любое число типа 235983724, пихаешь его в базу
при получении ссылки mysite.com/235983724 проверяешь когда была создана эта самая ссылка, если более суток назад, то досвидос, если же нет, разрешаешь скачивать файл

возможно я ошибаюсь

Это сообщение отредактировал(а) StachelDraht - 22.9.2009, 18:57
PM MAIL   Вверх
Alex103
Дата 22.9.2009, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

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



Цитата(StachelDraht @ 22.9.2009,  18:55)
а можно и не привязывать ко времени.
генерируешь любое число типа 235983724, пихаешь его в базу
при получении ссылки mysite.com/235983724 проверяешь когда была создана эта самая ссылка, если более суток назад, то досвидос, если же нет, разрешаешь скачивать файл

возможно я ошибаюсь

Хорошо, а как связать с файлом?


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
motorway
Дата 22.9.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Наверно, можно копировать основной файл из защищенной директории, давая ему это имя.
PM MAIL   Вверх
Alex103
Дата 22.9.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

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



Цитата(motorway @ 22.9.2009,  20:29)
Наверно, можно копировать основной файл из защищенной директории, давая ему это имя.

А если вес файла 2000 МБ, это слишком затратно, нужно оригинальное решение. А как удалять его через сутки?


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
motorway
Дата 22.9.2009, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Обычно можно связывать в настройках сервера с 1 файлом несколько адресов. Может, это поможет...
Или поискать в гугле, как это делается обычно
PM MAIL   Вверх
Gold Dragon
Дата 23.9.2009, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



а если просто сделать согласующую таблицу по типа
NAME | NAME_TMP | DATE_TMP

а имя как и сказано просто генерить, ну или например, использовать для имени session_id()


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Pfailed
Дата 23.9.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

А если вес файла 2000 МБ, это слишком затратно


http://ru2.php.net/manual/en/function.link.php

или

http://ru2.php.net/manual/en/function.symlink.php


--------------------
PM MAIL   Вверх
sTa1kEr
Дата 23.9.2009, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

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



Я бы предложил способ при котором не нужно дергать каждый раз базу. 
Генерируем уникальный ключ, который будет действителен в течении суток
Код

$filename = 'real_file.rar';
$timestamp = strtotime('+24 hours');
$key = sha1(KEY.$timestamp.$filename);

и передаем его вместе с реальным именем файла и таймштампом окончания действия файла
Код

echo 'http://example.com/'.$key.'/'.$timestamp.'/'.$filename;

Соответственно создаем создаем скрипт который будет обрабатывать все запросы на загрузку любых файлов. В этом скрипте, сначала проверяем, что таймштамп больше текущего, а затем генерируем ключ и сравниваем его с переданным. Если ключ совпал отдаем контент файла с соответствующими заголовками, иначе возвращаем ошибку.

Т.о. ссылка автоматически перестанет быть рабочей спустя сутки, не нужно никаких кроновских скриптов и сборщиков мусора(ссылок, временных файлов), а так же не нагружаем почем зря БД.

Это сообщение отредактировал(а) sTa1kEr - 23.9.2009, 12:01
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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