Сохранить pdf-файл из просмотрщика Chrome
Добрый день. Ситуация такая: по запросу из браузера клиента на сервере генерится pdf, который потом отдаётся в браузер клиента, в новое окно для просмотра.
Код:
function send_pdf_file($file_name,$contents) Если нажать на кнопку Сохранить, то в случае браузера Firefox всё отрабатывается корректно - пользователь получает запрос на сохранение pdf-файла и сохраняет его, в любой момент gjrf jnrhsnj jryj просмотрщика. В случае же браузера Chrome (и Edge), если на кнопку успеть нажать в первые 5 секунд после открытия просмотрщика - то всё тоже ок , если же нажать после истечения 5 секунд - то открывается запрос на сохранение не pdf-файла, а php-скрипта, который дёргался для формирования этого pdf. Подскажите, как победить эту ситуацию с Chrome? |
Content-Disposition: attachment
попробуйте |
Цитата:
|
A какой URL имеет то самое окно, в котором открывается pdf?
Наверно того самого скрипта, который его формирует. Но есть header("expires: 0"); Хром может из-за этого для сохранения заново обратится по указанному URL. А скрипт по этому URL пошлет снова документ и все заголовки, включая header("Content-Type: application/pdf; name=\"".$file_name."\""); header("Content-Disposition: inline; filename=\"".$file_name."\""); |
Цитата:
|
Цитата:
header('Content-Type: application/pdf'); header("Content-Disposition: inline; filename=name.pdf"); |
Цитата:
Проверил - наличие header("expires: 0") никак не влияет на поведение хрома: при сохранении в первые 5 секунд выдаётся диалог на сохранение pdf, в последующие диалог на сохранение скрипта php. Если попробовать сохранить скрипт, то хром выдаёт Ошибка: ошибка сети. При этом никаких запросов на вкладке Network в Инструментах разработчика не появляется. Похоже как-то эти самые 5 секунд связаны с наличием в Response Headers такого хедера Keep-Alive: timeout=5, max=100. |
Цитата:
|
Цитата:
|
Цитата:
Файла не сохраняется на сервере, он генерится и сразу отдаётся. |
Часовой пояс GMT +3, время: 20:34. |