В большинстве случаев должно работать:
Content-type: application/octet-stream
Content-Disposition: attachment; filename="myfile.txt"
В некоторых случаях браузеры по-прежнему отображают его в виде текстового файла, но ни один из основных браузеров этого не сделает (я говорю о браузерах, встроенных в некоторые MID).
РЕДАКТИРОВАТЬ : Когда этот ответ был первоначально опубликован, отправка Mime-Type application/octet-stream
была единственным надежным способом вызвать загрузку в некоторых браузерах. Теперь в 2016 году, если вам не нужно поддерживать древний браузер, вы можете смело указывать правильный mime-тип.