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 имеет свои ограничения и не заменяет серверную настройку.