Как отдать файл на загрузку

Тема в разделе "PHP", создана пользователем bvb, 17 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    189
    Симпатии:
    34
    Как реализовать скачивание с сайта?
     
  2. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    наврено вам это нужно?
    PHP:
    <?php
    // We'll be outputting a PDF
    header('Content-type: application/pdf');

    // It will be called downloaded.pdf
    header('Content-Disposition: attachment; filename="downloaded.pdf"');

    // The PDF source is in original.pdf
    readfile('original.pdf');
    ?>
    также смотреть тут
    http://www.codenet.ru/webmast/php/faq/index18.php
     
  3. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    189
    Симпатии:
    34
    Не совсем. Как это сделать через скрипт. Скажем так ..download.php?id=1234
     
  4. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    ну, например так:
    создаете базу с именами ваших файлов
    затем отдаете примерно так:
    PHP:
    <?php 
    //.....конект к БД
    $result=mysql_query('SELECT link FROM TABLE WHERE id='.$_GET['id']);
    $filename=mysql_fetch_array($result)[0];
    header('Content-type: '.mime_content_type($filename)); 
    header('Content-Disposition: attachment; filename="'.$filenameю'"'); 
    readfile($filename); 
    ?>
    естественно надо проверять входные данне, и написать конект к базе.
    надеюсь вы с этим справитесь?
     
    bvb нравится это.
  5. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    189
    Симпатии:
    34
    Да думаю справлюсь. Спасибо!
     
  6. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    191
    PHP:
    function SaveToClient($filename,$name) {
    if(
    ereg('Opera(/| )([0-9].[0-9]{1,2})'$_SERVER['HTTP_USER_AGENT']))
    $UserBrowser "Opera";
    else if(
    ereg('MSIE ([0-9].[0-9]{1,2})'$_SERVER['HTTP_USER_AGENT']))
    $UserBrowser "IE";
    else
    $UserBrowser '';

    $mime_type = ($UserBrowser == 'IE' || $UserBrowser == 'Opera') ? 'application/octetstream' 'application/octet-stream';

    header('Content-Type: ' $mime_type);
    header('Content-Encoding: none');
    header('Expires: ' gmdate('D, d M Y H:i:s') . ' GMT');
    if (
    $UserBrowser == 'IE') {
    header('Content-Disposition: inline; filename="'.$name.'";');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    }
    else {
    header('Content-Disposition: attachment; filename="'.$name.'"');
    header('Pragma: no-cache');
    }
    @
    readfile($filename);
    exit();
    }
     
  7. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    189
    Симпатии:
    34
    alexz15, это код download.php? Мне не совсем понятно.
     
  8. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Это функция которая в зависимости от типа браузера отправляет разные заголовки...
     
  9. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    191
    да, это download.php
    пример использования:
    PHP:
    SaveToClient('http://site/archiv.zip','archiv.zip');
    в итоге будет запрос у клиента на сохранение файла archiv.zip
     
    bvb нравится это.
Статус темы:
Закрыта.