Как установить имя файла ответа, не вызывая диалоговое окно "Сохранить как"

Я возвращаю поток в некотором ответе, устанавливая соответствующий заголовок content-type. Поведение, которое я ищу, таково:

  • Если браузер может отображать контент данного типа, он должен отобразить его в окне браузера.

  • Если браузер не знает, как отобразить содержимое, он должен отобразить диалоговое окно "Сохранить как", где имя файла должно соответствовать указанному в ответе.

Проблема в том, что если я установлю заголовок Content-Disposition с помощью:

"attachment; filename =" myfile.txt ""

браузер всегда будет отображать диалоговое окно "Сохранить как".

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

Я также попытался установить Content-Disposition для inline но результат тот же.

Ответ 1

Правильный способ:

Content-Disposition: inline; filename="myfile.txt"

Ответ 2

Я не уверен, если это возможно по умолчанию. Из-за проблем безопасности браузеры отправляют не все типы контента, которые они могут обработать, а лишь несколько Accept-Encoding, которые мало помогают в вашем сценарии.

Возможно, вы сможете спросить своего пользователя, что он предпочитает, и сохранить эту информацию в своем профиле.