PDF для загрузки, не ссылка для просмотра / загрузки - PullRequest
2 голосов
/ 13 июля 2010

Я пытаюсь сделать так, чтобы при нажатии «скачать здесь» файл pdf загружался на рабочий стол пользователя.Как мне это сделать?

Ответы [ 5 ]

10 голосов
/ 13 июля 2010

Используйте заголовок Content-Disposition.

Но, пожалуйста: Делайте это только в том случае, если действительно необходимо для того, чтобы пользователь загрузил PDF и не открылэто (так что это просто помощь пользователю, что ему не нужно явно выбирать «сохранить файл»).Не используйте его, чтобы заставить пользователя загрузить его, хотя он просто хочет его просмотреть.

3 голосов
/ 08 ноября 2010

код для a.php:

<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename=file.pdf')
echo file_get_contents("file.pdf");
?>

ссылка на сайт:

 <a href="a.php">Download</a>
1 голос
/ 09 июня 2013

Это распространенная проблема, и лишь немногие знают, что существует простое решение HTML 5:

<a href="./directory/yourfile.pdf" download="newfilename">Download the pdf</a>

Где newfilename - это рекомендуемое имя файла для сохранения файла пользователем.Или по умолчанию будет использоваться имя файла на стороне сервера, если вы оставите его пустым, например:

<a href="./directory/yourfile.pdf" download>Download the pdf</a>

Совместимость: я проверил это на Firefox 21 и Iron, оба работали нормально.Это может не работать в HTML5-несовместимых или устаревших браузерах.Единственный браузер, который я тестировал, который не вызывал загрузку, это IE ...

0 голосов
/ 29 августа 2013

Я думаю, что для этого есть тег <meta>. Я думаю это называется nosave. Но не ищите WWW для этого - я искал и не мог найти его.

0 голосов
/ 13 июля 2010

То, что вы просите, - это контролировать поведение браузера - это не просто.

Лучше всего, если у вас есть возможность указать ссылку на что-то похожее на веб-страницу (то есть download.php?file=1) и один разБраузер замечает, что это двоичные данные, и спрашивает пользователя, что он хочет с ними делать.Скорее всего, этот метод выполнит свою работу.

Но учтите, что такое поведение не гарантируется и сильно зависит от конфигурации браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...