Отдача файла на загрузку с последующей переадресацией на другую страницу

264
10 июля 2018, 04:30

Подскажите пожалуйста реализовать функционал На сайте есть форма, после отправки формы, скрипт должен:

  1. обработать данные

  2. отдать документ pdf на загрузку пользователю

  3. перенаправить пользователя на страницу с благодарностью

С первым пунктом все отлично, проблема появилась с двумя последними

$filename = './handbook.pdf';
header("Content-type: application/x-download");
header("Content-Disposition: attachment; filename=$filename");
readfile($filename);
header( 'Location: ../end.html', true, 301 );

Функцию header() можно вызвать если клиенту еще не передавались данные, но передача данных уже была.

Помогите реализовать функционал

Спасибо!

Answer 1

Если нужно использовать только PHP, то можно использовать в header() задержку:

 header("refresh:3;url=https://google.com/");

То есть редирект пройдет не сразу, а с задержкой (3 секунды). До этого можно вывести данные в браузер. Сам header() естественно следует отправлять до любого вывода в браузер.

READ ALSO
Ошибка при установке Symfony на сервер | Centos 7

Ошибка при установке Symfony на сервер | Centos 7

Установил и настроил Apache , php 72 на Centos 7 Теперь пытаюсь установить Symfony

349
Не выводит Японские символы в консоль

Не выводит Японские символы в консоль

Недавно ввел практику использования w- типы (без понятия как они точно называются по этому назвал их по приставке), Русские и Английские символы...

282
Как вывести число Пи до определенного знака?

Как вывести число Пи до определенного знака?

Число пи можно считать использовав ряд Лейбница, выводить, использовав манипулятор

264
Что значит запись типа 0x00

Что значит запись типа 0x00

открыл библиотеку для модуля на ардуины, там имеет место запись типа

260