скрипт скачки изображения

Discussion in 'PHP' started by GAiN, 30 Dec 2011.

  1. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    посоветуйте скрпит которым можно по клику скачивать изображение?
    есть такие скрипты, с поможью которого при желании можно другие php файлы и прочие при помощи его выкачать, вот например этот:
    PHP:
    <?php
    header
    ('Content-type: application/octet-stream');

    header("Content-Disposition: attachment; filename=".$_GET['url']);

     
     

    $x fread(fopen($_GET['url'], "rb"), filesize($_GET['url']));

    echo 
    $x;
    ?>
    можно ли сделать чтобы только изображения скачивались?
     
  2. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,546
    Likes Received:
    173
    Reputations:
    75
    несовсем понял, ты хочешь чтобы вставить в скрипт урл и чтобы он скачал все картинки на странице, так?
     
  3. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    нет, картинки только нужные надо скачать, ссылку на скачку я сделаю сам
    надо что то подобное:
    http://site.ru/img.php?url=images/imag.png
    вот только если вставить вместо images/imag.png путь на php файлы, то скачает этот файл
     
  4. N@b$ter

    N@b$ter Elder - Старейшина

    Joined:
    6 Oct 2009
    Messages:
    290
    Likes Received:
    70
    Reputations:
    21
    такие программы уже есть - пользуемся гуглом или тебе нужно чтобы было на пхп написано?
    если это не обязательно вот хорошая прога Picture Pump
     
  5. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    N@b$ter - надо чтобы нажав на ссылку пользователь не открыл изображение, а скачал его к себе :)
     
  6. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Выбираеш функцию:
    http://habrahabr.ru/blogs/php/37753/

    Создаеш условие сравнения с нужными тебе расширениями файлов.

    PHP:
    $file_name "";//файл
    $mime 'application/force-download';
    header('Pragma: public');   
    header('Expires: 0');   
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Cache-Control: private',false);
    header('Content-Type: '.$mime);
    header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
    header('Content-Transfer-Encoding: binary');
    header('Connection: close');
    readfile($file_name);
    exit();
    }
     
  7. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    что то у меня ничего не вышло, либо php вообще не работает скачка, либо скачивает через него любые php файлы с сервера:
    http://site.ru/img.php?url=scripts/action.php
    пробовал через .htaccess поставить запреты, но в таком случаи php скрипт не выполняется
    <Files action.php>
    deny from all
    </Files>
    как вариант можно ли сделать без базы данных генерацию временной ссылки - пусть даже на один заход - для изображения, возможно ли сделать на js или php ?
    поискал мануалы по интернету, там только с mysql был пимер
     
    #7 GAiN, 31 Dec 2011
    Last edited: 31 Dec 2011
  8. nyakamedia

    nyakamedia New Member

    Joined:
    22 Sep 2010
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    Перед отдачей файла делаешь проверку на расширение, например - если png/jpg/gif - отдаешь.

    Получить расширение можно с помощью функции pathinfo() - http://php.net/manual/en/function.pathinfo.php
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    GAiN Вы заказывали возможность скачивания произвольных файлов с помощью ПХП. Вы это получили. Проблемы фильтрации и прочего, мне кажется, вы способны решить сами
    Если вы придумаете как хранить эту самую временную ссылку без БД - то запросто
     
    _________________________
  10. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    Gifts, а в txt файле или в php файл или в созданный htaccess можно записать эту ссылку?
     
  11. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    http://www.php.net/manual/en/function.fwrite.php
    http://php.net/manual/ru/function.file-put-contents.php
    сильные вопросы
     
    _________________________
    1 person likes this.
  12. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    кто скажет что не работает - тот дурак
    PHP:
    <?php
    if(isset($_GET['image'])){
        
    $file $_GET['image'];
        if (
    file_exists($file)) {
            
    header('Content-Description: File Transfer');
            
    header('Content-Type: application/octet-stream');
            
    header('Content-Disposition: attachment; filename='.basename($file));
            
    header('Content-Transfer-Encoding: binary');
            
    header('Expires: 0');
            
    header('Cache-Control: must-revalidate');
            
    header('Pragma: public');
            
    header('Content-Length: ' filesize($file));
            
    ob_clean();
            
    flush();
            
    readfile($file);
            exit;
        }
    }
    ?>
    пользоваться так http://site.com/script.php?image=./images/image.jpg