Добрый день. <a data-post="/ajax/scripts/emails">скачать</a> При нажатии на ссылку "скачать" обработчиком формируется файл, а затем его нужно скачать на комп. Раньше я прямо в тэге <a> указывал <a href="..." download>, но тут мне надо чтобы он этот файл сначала сформировался. Файл с расширением .csvv создается, но скачать его никак не получается. $res['eval'] = 'window.location.href = "...";'; позволяет открывать его в новом окне браузера, но мне нужно именно чтобы скачивался.
заголовки надо формировать, тогда скачиваться будет.. вот я делал недавно для CSV файлов.. PHP: // Отключаем кэширование $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=data_export.csv"); header("Content-Transfer-Encoding: binary");
Заголовки я делал, у меня 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');