Как задать имя файла ответа без принудительного диалога “сохранить как”
-
20-09-2019 - |
Вопрос
Я возвращаю поток в некотором ответе, устанавливая соответствующий content-type
заголовок.Поведение, которое я ищу, это:
Если браузер способен отображать содержимое данного типа контента, то он должен отображать его в окне браузера.
Если браузер не знает, как отобразить содержимое, то он должен отобразить диалоговое окно "сохранить как", где имя файла должно быть тем, которое указано в ответе.
Проблема в том, что если я установлю Content-Disposition
заголовок с:
"привязанность;имя файла="myfile.txt ""
браузер всегда будет отображать диалоговое окно "Сохранить как".
Если я не установлю Content-Disposition
, имя файла, используемое в диалоговом окне "сохранить как", - это имя в URL, которое в моем случае не работает.
Я также попробовал установить Content-Disposition
Для inline
но результат тот же самый.
Решение
Правильным способом могло бы быть:
Content-Disposition: inline; filename="myfile.txt"
Другие советы
Я не уверен, возможно ли это по умолчанию.Из соображений безопасности браузеры отправляют не все типы контента, которые они могут обрабатывать, а лишь некоторые Accept-Encoding
, что не очень помогает в вашем сценарии.
Возможно, вы можете спросить своего пользователя, что он предпочитает, и сохранить эту информацию в его профиле.