За последние 24 часа нас посетили 16625 программистов и 1594 робота. Сейчас ищут 927 программистов ...

PHP, download file

Тема в разделе "PHP для новичков", создана пользователем Horus1613, 6 окт 2017.

  1. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    Добрый день.

    <a data-post="/ajax/scripts/emails">скачать</a>

    При нажатии на ссылку "скачать" обработчиком формируется файл, а затем его нужно скачать на комп.
    Раньше я прямо в тэге <a> указывал <a href="..." download>, но тут мне надо чтобы он этот файл сначала сформировался. Файл с расширением .csvv создается, но скачать его никак не получается.

    $res['eval'] = 'window.location.href = "...";'; позволяет открывать его в новом окне браузера, но мне нужно именно чтобы скачивался.
     
  2. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    заголовки надо формировать, тогда скачиваться будет..
    вот я делал недавно для CSV файлов..

    PHP:
    1.         // Отключаем кэширование
    2.         $now = gmdate("D, d M Y H:i:s");
    3.         header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    4.         header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
    5.         header("Last-Modified: {$now} GMT");
    6.  
    7.         // Говорим что то что отдается надо скачивать..
    8.         header("Content-Type: application/force-download");
    9.         header("Content-Type: application/octet-stream");
    10.         header("Content-Type: application/download");
    11.  
    12.         // Имя файла и тип отдачи..
    13.         header("Content-Disposition: attachment;filename=data_export.csv");
    14.         header("Content-Transfer-Encoding: binary");
     
  3. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    Заголовки я делал, у меня readfile() не работает.

    $now = gmdate("D, d M Y H:i:s");
    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
    header("Last-Modified: {$now} GMT");

    // Говорим что то что отдается надо скачивать..
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");

    // Имя файла и тип отдачи..
    header("Content-Disposition: attachment;filename=test.csvv");
    header("Content-Transfer-Encoding: binary");

    // $res['eval'] = 'window.location.href = "/uploads/test.csvv";';
    readfile('/var/www/html/uploads/test.csvv');