Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сохранить pdf-файл из просмотрщика Chrome (https://javascript.ru/forum/misc/80999-sokhranit-pdf-fajjl-iz-prosmotrshhika-chrome.html)

laimas 10.09.2020 12:33

Цитата:

Сообщение от slan
Файла не сохраняется на сервере, он генерится и сразу отдаётся.

Какая проблема его сохранить для проверки или взять любой готовый? Ведь в таком случае уже сервер автоматом передаст браузеру необходимые заголовки, а главный из них это тип файла, все остальные можно было бы и опустить, так как после передачи последнего байта сервер закроет соединение, это и будет размер. А просмотр отдает на сохранение ранее загруженное. А имя файла по умолчанию (document) можно и исправить. То есть в самом механизме нет проблемы, хоть по прямой ссылке, хоть отдавая контент скриптом. Была бы здесь возможность вставлять видео, мог бы и снять такое с простым примером, чтобы убедиться в отсутствии проблем в Хроме.

У вас какие-то проблемы в логике скрипта надо полагать.

slan 10.09.2020 13:20

Цитата:

Сообщение от laimas (Сообщение 528734)
У вас какие-то проблемы в логике скрипта надо полагать.

Я тоже так думаю. К сожалению не могу понять какие.

slan 10.09.2020 14:10

Цитата:

Сообщение от laimas (Сообщение 528734)
Какая проблема его сохранить для проверки или взять любой готовый?

Положил на сервер готовый файл 1.pdf.
сделал в скрипте вот так:
header("Content-Type: application/pdf; name=\"1.pdf\"");
  header("Content-Disposition: inline; filename=\"1.pdf\"");
  readfile("../1.pdf");

Результат тот же самый. 5 секунд скачивается pdf, после хром предлагает скачать сам скрипт.

laimas 10.09.2020 14:14

Цитата:

Сообщение от slan
не могу понять какие

Ну а остальным тем более не ведомо, как у вас построен сам диалог клиент-сервер. Ведь сам браузер работает так - если в нем есть средство просмотра фала, то он его откроет, если нет, то предложит диалог для сохранения или открытия его в ПО на компьютере. А по прямой ли это ссылке или контент отдается скриптом, это не так и важно в данном случае.

laimas 10.09.2020 14:16

Цитата:

Сообщение от slan
Положил на сервер готовый файл 1.pdf.
сделал в скрипте вот так

Вы ничего не изменили этим примером. Отдать по прямой ссылке, это <a href=file...

slan 10.09.2020 14:51

Цитата:

Сообщение от laimas (Сообщение 528740)
Ну а остальным тем более не ведомо, как у вас построен сам диалог клиент-сервер. Ведь сам браузер работает так - если в нем есть средство просмотра фала, то он его откроет, если нет, то предложит диалог для сохранения или открытия его в ПО на компьютере. А по прямой ли это ссылке или контент отдается скриптом, это не так и важно в данном случае.

Я же вроде бы сразу написал, что сам файл браузером Chrome к просмотру открывается и отображается корректно. Некорректно происходит скачивание этого файла из просмотрщика по кнопке Сохранить после того как прошло 5 секунд.

slan 10.09.2020 14:52

Цитата:

Сообщение от laimas (Сообщение 528741)
Вы ничего не изменили этим примером. Отдать по прямой ссылке, это <a href=file...

Я не совсем понимаю этого эксперимента. Мне не нужно по прямой ссылке, ибо понятное дело так работать будет.

laimas 10.09.2020 15:50

Цитата:

Сообщение от slan
Я не совсем понимаю этого эксперимента

Если логика (запрос клиента->окно->...) вашего скрипта страдает, то проблемы будут и с прямой ссылкой.

slan 10.09.2020 16:26

laimas,
Спасибо за помощь. Посмотрел ваше видео, у вас отрабатывает так как нужно.
Положил готовый pdf на сервер, на кнопку повесил href. В этом случае отрабатывает как надо, файл скачивается в любой момент времени.
В моем же случае, вида
window.open("/get_pdf.php", "_blank");

отрабатывает не так как хотелось бы.

laimas 10.09.2020 16:29

Цитата:

Сообщение от slan
В моем же случае, вида

Вот в этом и собака зарыта, что с окном, что далее происходит и разбирайтесь, а код выдачи файла к этому отношения не имеет. То есть если в этом окне делать запрос к файлу, а не скрипту, то вы должны наблюдать те же проблемы.


Часовой пояс GMT +3, время: 06:54.