[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачивание PDF в разных браузерах
Turboworld1
Недавно заказчик попросил меня залить на сайт коммерческое предложение в формате PDF. Казалось бы элементарная задачка - заливаешь файл, ставишь на него ссылку, и люди могут его спокойно скачивать... Однако, мною было обнаружено, что скачивание PDF-файла по ссылке работает только в IE. В остальных браузерах (Opera, FireFox) PDF-файл не скачать! :blink: В них открывается только пустая страница и всё. Никакого запроса на скачивание файла не появляется.

Почему так происходит - я не в курсе. В интернете, кстати, эта тема не затрагивается вооьще почему-то... Может мне кто объяснит - может это только я заметил? :)

И в итоге мне пришлось ставить ссылку на PDF файл через одно место (используя PDF-скрипт): ставить ссылку не на сам PDF-файл, а на такой скриптик:

<?php

$filename='predlozheniye.pdf';
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="' . $filename . '"');
readfile( './files/'.$filename );

?>


Выкладываю тут решение - мало ли кто еще столкнется с такой непоняткой.

P.S.: если кто может мне объяснить в чем причина нескачивания в других браузерах - был бы рад послушать :unsure: :rolleyes:



Спустя 19 часов, 37 минут, 12 секунд (4.03.2011 - 21:32) Turboworld1 написал(а):
Может хоть кто-нибудь тут отпишется? smile.gif Это я туплю что у меня в других браузерах (кроме ИЕ) PDF-файлы просто так по http не скачиваются, или же реально имеет место такой косяк?

Спустя 16 минут, 24 секунды (4.03.2011 - 21:48) glock18 написал(а):
Мне ни разу такое не встречалось, все скачивается нормально по прямой ссылке. Может быть у тебя дело в настройке сервера, и он не отправляет нужные заголовки

Спустя 48 минут, 4 секунды (4.03.2011 - 22:36) Turboworld1 написал(а):
Цитата (glock18 @ 4.03.2011 - 22:48)
Мне ни разу такое не встречалось, все скачивается нормально по прямой ссылке. Может быть у тебя дело в настройке сервера, и он не отправляет нужные заголовки

Я со своего компа не могу скачать ни одним браузером (кроме ИЕ) PDF по прямой ссылке. Дело не в настройках сервера (я пробовал и прямые ссылки на PDF-документы с чужих сайтов - всё так же).

Тем более про этот глюк мне рассказал заказчик, который не смог из своего браузера (мозилла) скачать PDF-файл. Т.е. проблема не только у меня.

P.S.: программы для просмотра PDF установлены и у меня и у заказчика. М.б. даже разные...

Спустя 15 минут, 10 секунд (4.03.2011 - 22:51) Nikitian написал(а):
Покажите, какие заголовки отдаёт ваш сервер при скачивании pdf.

Спустя 39 минут, 8 секунд (4.03.2011 - 23:30) Turboworld1 написал(а):
Я уже писал про сервер. ЛЮБЫЕ прямые ссылки на PDF у меня так открываются. Какие "заголовки моего сервера"?

Спустя 22 минуты, 25 секунд (4.03.2011 - 23:53) Nikitian написал(а):
Поставьте firebug и включите вкладку "сеть" перед скачиванием. Там увидите раздел headers. Хочу узнать какие заголовки ваш сервер отдаёт вместе с файлом. Есть подозрение, что pdf вам как pnaintext или html выдаётся, но надо смотреть заголовки.

Спустя 2 часа, 57 минут, 53 секунды (5.03.2011 - 02:51) Turboworld1 написал(а):
Цитата (Nikitian @ 5.03.2011 - 00:53)
Поставьте firebug  и включите вкладку "сеть" перед скачиванием. Там увидите раздел headers. Хочу узнать какие заголовки ваш сервер отдаёт вместе с файлом.  Есть подозрение, что pdf вам как pnaintext или html выдаётся, но надо смотреть заголовки.

Дело не в сервере (повторюсь - так происходит на любом сайте.

Но все же скидываю заголовки:

Date Fri, 04 Mar 2011 23:52:08 GMT
Server Apache/2.0.63-lk.d (Unix) mod_ssl/2.0.63-lk.d OpenSSL/0.9.8g mod_dp20/0.99.2 mod_python/3.3.1 Python/2.5.1 mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24)
Last-Modified Tue, 15 Feb 2011 10:29:01 GMT
Etag "752a38-bce1e-a1fe7540"
Accept-Ranges bytes
Content-Length 773662
Content-Type application/pdf

Спустя 20 часов, 51 минута, 51 секунда (5.03.2011 - 23:43) Turboworld1 написал(а):
Попробовал скачать PDF-файл с работы - получилось. Видимо, загвоздка кроется в браузере. Возможно, поможет переустановка.

Однако, судя по всему, проблема не такая уж и редкая smile.gif

Спустя 12 минут, 12 секунд (5.03.2011 - 23:55) Trianon написал(а):
Тут как бы всё очень просто.
Если по сслыке кликают мышкой (а не выбирают "сохранить как..." ) и клиентской системе известен тип содержимого, которое отдал сервер, она (браузер либо его окружение) попытается его открыть ассоциированным с этим типом обработчиком. И тут уж как получится.
Если тип неизвестен (либо указан явный тип "поток данных прикладной программы" application/octet-stream) браузер предложит сохранить поток данных в виде файла.
В этом плане, кстати, полезно дублировать имя файла как в поле
Content-Type: тип/подтип ; name="ИмяФайла"
так и в поле
Content-Disposition: размещение ; filename="ИмяФайла"

В ситуации, когда требуется спровоцировать браузер именно на сохранение в файл, а не на открытие, имеет смысл либо скриптом подставить тип application/octet-stream , либо организовать раздачу документа (очевидно с помощью .htaccess) так, чтобы этот тип выдал сам apache.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.