Мне нужно передать файл в Response для сохранения на машине конечного пользователя. Файл представляет собой обычный текст, поэтому какой тип содержимого я могу использовать для предотвращения отображения текста в браузере?
Какой тип содержимого принудительно загружает текстовый ответ?
Ответ 1
Чтобы быть в безопасности и обеспечивать согласованное поведение во всех браузерах, обычно лучше использовать оба:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"My Text File.txt\"
Ответ 2
В большинстве случаев должно работать следующее:
Content-type: application/octet-stream
Content-Disposition: attachment; filename="myfile.txt"
Есть некоторые маргинальные случаи браузеров, которые будут отображать его как текстовый файл, но ни один из основных браузеров (я говорю о браузерах, встроенных в некоторые MID).
EDIT: когда этот ответ был первоначально опубликован, отправка Mime-Type application/octet-stream
была единственным надежным способом запуска загрузки в некоторых браузерах. Теперь, в 2016 году, если вам не нужно поддерживать старый браузер, вы можете безопасно указать правильный тип mime.
Ответ 3
Я не думаю, что это работает.
Используйте заголовок Content-Disposition: attachment
, но придерживайтесь правильного Content-Type.