Почему браузер вместо того, чтобы скачать файл PDF, патается его отобразить?

Браузер пытается отобразить PDF-файл вместо его скачивания, потому что настройки заголовков HTTP-ответа указывают на то, что браузер должен открывать содержимое файла непосредственно в окне браузера.

Чтобы заставить браузер загружать файл PDF вместо отображения его в браузере, необходимо убедиться, что сервер отправляет правильные заголовки в ответе HTTP. Для этого можно установить заголовок Content-Disposition со значением attachment, указывающим браузеру загружать файл как вложение, а не пытаться открыть его в окне браузера.

Пример использования заголовка Content-Disposition в PHP:

<?php
$file = 'path/to/your/file.pdf';

header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Length: ' . filesize($file));

readfile($file);
?>

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