View Single Post
Старий 11-02-2007, 23:48   #504
Mixa
Гигант мысли
 
Mixa's Avatar
 
Реєстрація: Nov 2006
Повідомлення: 976
Send a message via Skype™ to Mixa
За замовчуванням

Цитата:
Повідомлення від maxi18
Кто-нибудь знает, как сделать временную линку в пхп?
(чтоб жила скажем час)

Тоесть на хосте есть файлик, его надо дать на выкачку, но так, чтобы никто не знал точно где он лежит.
PHP код:
<?php
   
if (@$f){
        
Header "Content-Type: application/octet-stream");
        
Header "Content-Length: ".filesize($f));
        
Header"Content-Disposition: attachment; filename=$f");
        
readfile($f);
    };

// Это должно приходить на скрипт из формы. Отсюда вырезать!
   
$file "myfile.zip";         // файл, который надо скачать прилетает из HTTP запроса
   
$download 'ok';             // разрешение на создание новой ссылки. Передается из HTTP запроса. например <input type=submit name=download value=Скачать>
// -------------------------------------- до сюда вырезать

   
$file_url "";               // папка где находится файл, что-то типа $file_url = "../files/progs/";
   
$expires "3600";             // сколько сeкунд будет жить ссылка
   
$expires mktime (date("H"),date("i"), date("s")+$expiresdate("m"), date("d"), date("Y"));
   
$now_date mktime (date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"));
   
$file =  $file_url.$file;
   
$tmp_link $file_url."tmp_".$file.".php";
   
$file_link "<? \$file='$file';    \$expires = $expires;   ?>";
   if (!
file_exists($tmp_link)||(@$download)){
        
$fp fopen ($tmp_link"w");
        
fputs($fp,$file_link);
        
fclose($fp);
        } else {
              @include (
$tmp_link);
        };

   
$d = @$expires $now_date;
   if (
$d<0){
   echo 
"Срок действия ссылки исчерпан!";
   } else {
     echo 
"<a href='?f=$file' target=new>Скачать!</a>";
   };
   if (@
$del_tmp_link){unlink($del_tmp_link);}; // это если надо зачистить временные линки
?>
Если надо еще. Отдельно мона сделать скариптик, который зачищает уже отработанные временные ссылки, но это просто, сам разберешься.
__________________
PHP программист. Создание и ремонт сайтов, проектирование web-систем, пишу отдельные скрипты под заказ. Большой опыт, креативные решения.
Mixa не на форумі   Reply With Quote