Положение заголовка не работает должным образом

У меня есть php-скрипт, который отображает изображение (с помощью imagick) и сохраняет его в какой-то каталог "SITE_ROOT.$filePath" , затем header('Location: ' . SITE_ROOT.$filePath) , перенаправляемый файл является png образ.

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

Я понятия не имею, что здесь не так, конечно, расположение заголовка должно просто взять меня на изображение и не иметь записи файла «Драйвер» после его перенаправления?

То же самое происходит и с redirect() тоже.

Заранее благодарю за любую помощь!

Edit: эта проблема была решена путем размещения die() после команды заголовка.

Related of "Положение заголовка не работает должным образом"

Вы используете пути к файлам, которые не работают с расположением заголовка. Вы должны использовать URL-адреса.

Лучше всего использовать абсолютные URL-адреса в заголовке. Документация PHP говорит:

HTTP / 1.1 требует абсолютного URI в качестве аргумента для «Location»: включая схему, имя хоста и абсолютный путь, но некоторые клиенты принимают относительные URI. ( Источник )

Также всегда выходите из сценария, потому что иначе в моем опыте в определенных обстоятельствах код, который появляется после перенаправления, может все еще выполняться. Таким образом, хороший пример будет выглядеть так:

 header("location:http://www.mysite.com/path/to/myfile.php"); exit; 

Часто вы должны использовать переменную сервера для этого случая:

 $url = $_SERVER["HTTP_HOST"]."/path/to/myfile.php"; header("location:".$url); exit; 

Ура!

header ('Location:'. $ filePath);

SITE_ROOT – это местоположение каталога htdocs на сервере; но заголовок Location должен быть путь к файлу относительно каталога htdocs