Как открыть PDF из панели уведомлений и исправить ошибку «Не удается открыть файл»?

Я искал и искал решение этой проблемы, пожалуйста, помогите. Я использую Samsung Galaxy S4 с Android 4.2.2 вместе с браузером Chrome.

Шаги для репликации:

  1. Перейдите по адресу: http://www.buzzbuzzbingo.com/Holidays/Halloween_Images/
  2. Нажмите «Загрузить и распечатать», чтобы начать загрузку PDF-файла.
  3. Обратите внимание на уведомление с надписью «Начало загрузки…».
  4. Откройте панель уведомлений и убедитесь, что загрузка завершена.
  5. Щелкните загруженный файл PDF и получите сообщение об ошибке «Не удается открыть файл», а панель уведомлений закроется.

Длительный щелчок по загруженному PDF-файлу не предлагает вариантов выбора приложения для открытия файла. Я установил Adobe Reader, и, используя его для перехода к загруженному файлу, он отлично откроется. То же самое с Polaris Office. Я хотел бы иметь возможность открывать PDF из панели уведомлений. В качестве альтернативы, если бы я мог просматривать PDF-файл непосредственно в Chrome, это было бы приемлемо.

Ответы (1)

Это сочетание проблемы с PDF и браузером. Некоторые PDF-файлы работают нормально, а другие — нет в разных браузерах.

Скачав упомянутый вами PDF-файл, вот результаты с использованием разных браузеров:

  • Chrome: не удается открыть PDF из уведомления
  • Браузер лодки: не удается открыть PDF из уведомления
  • Dolphin: можно открыть PDF из уведомления

Загрузка другого PDF-файла с другого сайта, вот результаты с использованием разных браузеров:

  • Chrome: можно открыть PDF из уведомления
  • Браузер лодки: можно открыть PDF из уведомления
  • Dolphin: можно открыть PDF из уведомления

ОБНОВЛЕНИЕ 11.10.2013: Согласно выводам Скотта , это проблема PDF. Заголовок Content-Type проблемного PDF-файла — application/x-download, а рабочий PDF-файл — application/pdf.

Если вы управляете сервером, который обслуживает эти PDF-файлы, вы можете переключить заголовок Content-Type, чтобы разрешить его открытие во всех браузерах. Пример PHP:

В PHP это ранее было нарушено при отправке:

 header('Content-Type: application/x-download');

Переключите это на этот заголовок, чтобы работать:

 header('Content-Type: application/pdf');
Могу сказать, что PDF создается с использованием PHP-библиотеки под названием FPDF. Спасибо за эту информацию, мне нужно будет сравнить заголовки файлов дальше. С каким сайтом вы сравнивали?
@Scott Скачал PDF-файл с сайта pinoyfitness.com/2013/10/…
Похоже на проблему с PDF. Разница в том, что заголовок Content-Type — это application/x-download при загрузке PDF, которая вызывает ошибку, и application/pdf при загрузке PDF, которая работает.
@Scott Добавил свой комментарий к ответу. :)
Строго говоря, это проблема сервера, а не проблема PDF. С самим файлом все в порядке, сервер просто неправильно сообщает его тип. Кажется, что Dolphin не сохраняет указанный тип файла при загрузке файла.