Когда пользователь нажимает ссылку «Загрузить PDF», я хотел бы, чтобы появилось приглашение к загрузке, и чтобы пользователь мог загрузить файл.
В настоящее время пользователь просто переносится на адрес файла PDF.
Например:
<a..[what goes here??]..>Download PDF</a>
Кажется, что для этого требуется сочетание JavaScript и PHP.
Может ли кто-нибудь привести пример?
Если вы находитесь в Apache, вы можете удалить его в свой .htaccess:
<Files *.pdf> Header set Content-Disposition attachment </Files>
Это отправит все документы PDF в виде загрузок. mod_headers должен быть включен.
Перенаправление на страницу PHP с этим кодом на нем:
<?php header('Content-disposition: attachment; filename=movie.mpg'); header('Content-type: video/mpeg'); readfile('movie.mpg'); ?>
ваш код <a href
должен будет указывать на определенную страницу, а readfile будет вызывать ваш ресурс
дальнейшее чтение
Как примечание, я согласен с тем, что вы не должны переопределять настройки браузеров, но иногда, когда босс спрашивает, вам просто нужно сделать.
You can also use the following code: <?php $file = filter_input(INPUT_GET, 'file'); $filename = basename($file); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=\"{$filename}\";"); readfile("your file path {$file}"); ?>
Это вызовет любые расширения файлов, такие как (.pdf, .docx, .zip, .csv, .txt, .html, .php и т. Д.) Без прямого открытия в новом браузере.
Вы можете заставить браузер сохранить связанный контент, добавив HTTP-заголовок в ответ веб-сервера:
Content-Disposition: attachment; filename=<default filename to save as>
С другой стороны, я действительно не вижу смысла в переопределении конфигурации браузера пользователя, что обычно говорит о том, что PDF-документы должны по умолчанию открываться в браузере, открываться в отдельном средстве просмотра PDF или сохраняться на диске.
Вы можете использовать атрибут download
HTML5 на свой тег.
<a href="http://love4cats.com/kitten-catalogue.pdf" download>Download the CATalogue</a>
Вы должны проверить свою аналитику и убедиться, что ваш целевой браузер поддерживает этот атрибут. См. Страницу входа caniuse.com для поддержки браузера.
Я не верю, что есть волшебное решение javascript / PHP для вашей проблемы, ванильный HTML:
<a href="docco.pdf" title="this is a link to a pdf">download the PDF</a>
будет делать то, что требуется, он направит браузер на запрос ресурса «docco.pdf», это зависит от браузера (и любых плагинов), чтобы что-то сделать с этим.
Например, есть Firefox-аддон « Загрузка PDF », который предлагает пользователю выбор того, что делать со всплывающим окном.
Неясно, что вы подразумеваете под
В настоящее время пользователь просто переносится на адрес файла PDF.
Но я предлагаю простой подход:
<a href='http://example.com/download.pdf'>Download PDF</a>
Выбор загрузки или открытия файла – это больше настройка браузера.