PHP: отображать содержимое после принудительной загрузки?

У меня такой сценарий

<?php if (file_exists("./foo.txt")) { header("Content-type: application/force-download"); header("Content-length: ".filesize("./foo.txt")); header('Content-Disposition: attachment; filename="foo.txt"'); readfile('./foo.txt'); } print "HEY!"; ?> 

и я хочу, чтобы «Эй» был записан на страницу после принудительной загрузки, как это возможно?

Я вижу страницы загрузки, которые похожи на «Если ваша загрузка не запускается автоматически, нажмите здесь», так что это контент и загрузка? hey в моем примере включен в текстовый файл, поэтому он не работает.

Solutions Collecting From Web of "PHP: отображать содержимое после принудительной загрузки?"

Это возможно только с помощью многостраничного сообщения . Но, к сожалению, не так много браузеров, которые поддерживают множественные сообщения в HTTP (я думаю, что Opera – единственная).

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

Вы можете сделать это с META REFRESH следующим образом:

 <meta http-equiv=REFRESH CONTENT="5; url=http://your_domain/your_file"> 

Это невозможно. (По крайней мере, пока у нас нет многопроцессорных запросов.)

Страницы, на которые вы указываете, перенаправляются на страницу «если ваша загрузка не запускается …» и запускают загрузку там, обычно используя JavaScript, чтобы открыть загрузку в новом окне.

Отобразите сообщение на другой странице .. затем укажите ссылку для загрузки файла или перенаправления браузера в файл php, который заставляет загрузить.

 onClick="setTimeout(location.reload.bind(location), 15000);" 

Это будет ждать 15 секунд (15 000 миллисекунд), а затем вызовите функцию location.reload, которая является встроенной функцией для обновления страницы.