Вебсправочник
Основы веб-разработки

Content-Disposition: просмотр файла или скачивание

Заголовок Content-Disposition сообщает браузеру предпочтительный способ обработки ответа. Его часто используют, чтобы выдавать документ как вложение с понятным именем файла.

Назначение

Заголовок Content-Disposition сообщает браузеру предпочтительный способ обработки ответа. Его часто используют, чтобы выдавать документ как вложение с понятным именем файла.

Как это работает

Значение inline допускает встроенное представление, attachment предлагает скачивание. Filename служит подсказкой имени. Для международных имён существует filename* с кодировкой и процентным представлением; фактическое сохранение зависит от браузера.

Пример

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="layout-notes.pdf"

[Далее идут байты PDF, а не этот поясняющий текст]

Что должно получиться

При корректном PDF браузер обычно предлагает сохранить layout-notes.pdf. Это пример ответа сервера: строки заголовков не следует вставлять в тело HTML или перед содержимым файла вручную.

Граница применения и частая ошибка

Имя из заголовка нельзя считать безопасным путём на диске. Удаляйте разделители директорий и недопустимые символы при формировании имён. Заголовок не исправляет неверный Content-Type и не делает опасное содержимое безопасным.

Самостоятельная проверка

На локальном стенде выдайте один документ как inline и как attachment. Сравните заголовки, имя сохранённого файла и его открытие. Проверьте также обычную ссылку: атрибут download имеет свои ограничения и не заменяет серверную настройку.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.