PHP-код не работает после кода заголовка для загрузки файлов

У меня есть этот код и по какой-то причине после этого принудительно загружает код файла, следующий код php не запускается ..

          $file = "2.jpg";
header("Content-Type:application/force-download");
header("content-disposition:attachment; filename=".$file);
readfile("$file");

echo "hello"

echo "hello" команда например не работает

0

Решение

Из-за того, как работает протокол HTTP, содержимое заголовка — в ответе от сервера — используется для определения того, как обрабатывать содержимое тела ответа.

И вы добавляете заголовки, которые сообщают браузеру (или тому, что получает ответ) обрабатывать содержимое как данные JPG. Все содержания. Так вот что происходит. Вы не отправляете и данные, и немного HTML / текста для показа. Либо страница или содержимое JPG отправляются.

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

Обновить:

Если вы хотите, вы можете использовать метатег, чтобы сначала отобразить сообщение, а затем перенаправить на ваш URL для загрузки. 2 в примере — это количество секунд ожидания до того, как произойдет перенаправление.

<!doctype html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="2;URL='http://example.com/readfile.php'" />
<title>You will soon be downloading</title>
</head>

<body>
Hello
</body>
</html>

Это самый чистый способ. Если вы не хотите отображать сообщение до тех пор, пока не закончится загрузка файла, вы также можете сделать это, но тогда вам придется прибегнуть к Javascript (AFAIK). И это немного сложнее.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]