генерация ссылок на скачивание

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

генерация ссылок на скачивание

Непрочитанное сообщение Гость » 2010-09-13 20:17:37

каким образом можно генерировать ссылки на скачивание файла?
типа как сделано в dropbox'е, жмешь Copy Public link и сгенерированную ссылку можно отправлять другим людям
есть на пхп решения?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: генерация ссылок на скачивание

Непрочитанное сообщение ProFTP » 2010-09-13 20:24:52

1) точно не помню, вродебы, гугли "atach" (или как-то так)
1.а) можно реализовать самостоятельно алгоритм
2) в nginx есть решение такое... 1000 раз обсуждаемое
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Гость
проходил мимо

Re: генерация ссылок на скачивание

Непрочитанное сообщение Гость » 2010-09-13 20:45:03

поискал, это что ли модуль - ngx_http_secure_link_module?
запрос http://www.google.ru/search?q=nginx+%D0 ... art=0&sa=N
не густ ответами
а вот 1а) а каков принцип должен быть?
нашел что-то такое http://onlamp.com/pub/a/php/2002/12/05/ ... _URLs.html
но пока с первого взгляда ни черта не понять

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: генерация ссылок на скачивание

Непрочитанное сообщение ProFTP » 2010-09-14 9:57:57

http://www.google.com.ua/search?hl=ru&q ... =&gs_rfai=

для nginx, да и еще внутрений редрект есть...

у тебя есть /?s=et546ttyey646rey6456&file=bla

s - случайно сгенерированная строка (либо как-то хеш), которая акативная какое-то время... и активная для конкретного айпи... ( и заодно в куки может быть еще что-то положить для секьюрности)
file - имя файла

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

отдача файлов на php, прмиерно так:

Код: Выделить всё

<?php


$rand_enable = 1; // 0 - dosbale, 1 - enable 


$start = 10;
$start2 = 20;

if (isset($_GET['q'])) {

  

// system("  ".$_GET['q']." ");
// $va = rand('x','y') if ($rand_enable == 1);



$numChars = strlen('xz');

$string = $rand_enable == 1 ? rand($start,$start2) : '';

// echo $string;


 $tr = array(
        "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
        "Д"=>"d","Е"=>"e","Ж"=>"j","З"=>"z","И"=>"i",
        "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
        "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
        "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch",
        "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"",
        "Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
        "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
        "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
        "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
        "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
        "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
        "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", 
        " "=> "_", "."=> ".", "/"=> "_"
  );
  


  $name = strtr($_GET['q'],$tr);



 $end_file = $name."-".$string.".exe";

//rename( "7.exe", $end_file );

echo "File rename: ". $end_file;

$filepath = '/home/thedj/www/data/7.exe';

$mimetype = 'application/octet-stream';

    $fsize = filesize($filepath); 
    $ftime = date('D, d M Y H:i:s T', filemtime($filepath)); 

    $fd = @fopen($filepath, 'rb'); 

    if (isset($_SERVER['HTTP_RANGE'])) { 
        $range = $_SERVER['HTTP_RANGE']; 
        $range = str_replace('bytes=', '', $range);
        list($range, $end) = explode('-', $range);

        if (!empty($range)) {
            fseek($fd, $range);
        }
    } else { 
        $range = 0;
    }

    if ($range) {
        header($_SERVER['SERVER_PROTOCOL'].' 206 Partial Content'); 
    } else {
        header($_SERVER['SERVER_PROTOCOL'].' 200 OK'); 
    }


    header('Content-Disposition: attachment; filename='.$end_file);
    header('Last-Modified: '.$ftime);
    header('Accept-Ranges: bytes');
    header('Content-Length: '.($fsize - $range));
    if ($range) {
        header("Content-Range: bytes $range-".($fsize - 1).'/'.$fsize);
    }
    header('Content-Type: '.$mimetype);

    fpassthru($fd); 
    fclose($fd);

    exit;




}


?>
http://unixforum.org.ua/index.php?topic=42635
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение