Консультация № 92637
23.06.2007, 23:05
0.00 руб.
0 3 3
Приветствую уважаемых!
Дело такое.
Хочу смастерить что то типа интернет-магазина, на данный момент столкнулся с задачей такого плана, нужно что бы ссылка (путь к файлу) для скачивания менялась раз в сутки. Файлов много, и предполагается такая система для каждого файла. Как этого можно добиться?
Спасибо.

Обсуждение

Неизвестный
23.06.2007, 23:59
общий
это ответ
Здравствуйте, Chufrinov Vadim!
Вообще способов довольно много, но приведу наиболее простой:
Есть таблица (неважно в БД или в файле):
alias file
---------------------------------------------------------
dvf45s34get downloadedFile1.rar
jk34u345iuh downloadedFile2.rar
9dfg8dfg8df downloadedFile3.rar
8dfs786gdfg downloadedFile4.rar
dfgs98sdfg7 downloadedFile5.rar

Смысл в том, что для каждого файла существует псевдоним. И все обращения к файлу происходят непосредственно по этому псевдониму. Например:
http://www.site.ru/download.php?8dfs786gdfg

Тогда скрипту download.php остается только из таблицы выбрать файл по его псевдониму 8dfs786gdfg и это будет downloadedFile4.rar.
Вот и всего делов то.

Ну и раз в сутки просто по рандому или как угодно меняете поля alias в таблице.
Неизвестный
24.06.2007, 03:11
общий
это ответ
Здравствуйте, Chufrinov Vadim!
Мжно сделать чтобы ссылка менялась раз в сутки - для этого можно использовать идентификатор сессии(предварительно сделав его действительным в течении суток)
Неизвестный
25.06.2007, 11:54
общий
это ответ
Здравствуйте, Chufrinov Vadim!

Могу предложить один способ, не скажу что он лучший, но возможно вам подойдет...

При создании ссылки генерируете ее вида http://site /download.php?id=dsfhsda32fhjk4sad42

Где в роли id будет выступать любая последовательность символов (можно использовать md5). Эту последовательность заносите в базу данных
-----------------------------------------------------
| id | path |
-----------------------------------------------------
|dsfhsda32fhjk4sad42hfkjsadf | files\1.rar|
------------------------------------------------------

на странице download.php пишите код получения ссылки из базы, а затем нечто похожее
// в $path храниться получиная ссылка на файл
header("Content-type: application");
header(‘Content-Disposition: attachment; filename="1.rar"‘);

$f = fopen($path,‘r‘);
while (!feof($f))
{
print fread($f,4096);
}

Форма ответа