PHP: отображать контент после принудительной загрузки? - PullRequest
6 голосов
/ 20 июля 2010

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

<?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 в моем примере включено в текстовый файл, поэтому оно не работает.

Ответы [ 5 ]

3 голосов
/ 20 июля 2010

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

<meta http-equiv=REFRESH CONTENT="5; url=http://your_domain/your_file">
3 голосов
/ 20 июля 2010

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

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

1 голос
/ 20 июля 2010

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

1 голос
/ 20 июля 2010

Это невозможно. (По крайней мере, до тех пор, пока у нас нет запросов из нескольких частей.)

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

0 голосов
/ 10 июля 2017
onClick="setTimeout(location.reload.bind(location), 15000);"

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...