Как установить имя файла ответа без принудительного сохранения диалога

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

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

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

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

"attachment; filename =" myfile.txt ""

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

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

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

2 ответа

Решение

Правильный путь может быть:

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

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

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

Другие вопросы по тегам