По дате Июль 8th, 2011

Как сделать ссылку `Сохранить как` на файл PDF, чтобы при нажатии файл не открывался

Как правило, при попытке открыть файл определенного типа (например, с расширением PDF), браузер вместо того, чтобы спросить пользователя “что делать с этим файлом - сохранить или открыть с помощью…” сразу же открывает файл, причем непосредственно в браузере.

Как сделать, чтобы при нажатии на ссылку появлялось окошко сохранить как?

Информация о том, какую программу использовать для открытия того или иного типа файлов хранится на пользовательском компьютере.. и какую программу использовать для открытия - задать с сервера мы не сможем. Однако, можно передать MIME-тип файла (как в статье про экспорт таблицы из PHP в Excel) при помощи отправки нужного заголовка. Для сервера Apache можно воспользоваться файлом .htaccess и директивой AddType. По умолчанию Web-сервер для .pdf-файла передаёт соответствующий тип:
AddType application/pdf .pdf

Если попробовать изменить его, например так:
AddType application/blabla .pdf
или вообще удалить:
RemoveType pdf

то браузер при открытии (если, конечно, он использует MIME-типы а не расширения файлов) файла незнакомого типа выведет окошко “сохранить файл как или открыть с помощью”

Однако, если пользователь привык к действию по умолчанию, то внезапное окошко “Сохранить как” может оказаться неприятным сюрпризом для него.

UpD для случаев, когда браузер воспринимает расширение файла, а не MIME-заголовок, можно оставлять (или делать внутренний редирект при помощи RewriteRule) ссылку например, на .PHP файл, который будет читать содержимое нужного файла и отдавать в браузер (самое простое - функцией file_get_contents). Прежде чем реализовывать такой механизм, следует проверить, насколько его использование оправдано. Отдача статики намного быстрее (особенно при использовании легких web-серверов), чем обработка PHP-файла.

Опубликовано Июль 8, 2011 | автор: levik  |  Нет комментариев »