適切なcontent-type
ヘッダーを設定して、何らかの応答でストリームを返しています。私が探している動作はこれです:
ブラウザが指定されたコンテンツタイプのコンテンツをレンダリングできる場合、ブラウザウィンドウに表示する必要があります。
ブラウザがコンテンツのレンダリング方法を知らない場合、「名前を付けて保存」ダイアログが表示され、ファイル名は応答で指定されたものになります。
問題は、Content-Disposition
ヘッダーを次のように設定すると:
「attachment; filename = "myfile.txt"」
ブラウザは常に「名前を付けて保存」ダイアログを表示します。
Content-Disposition
を設定しない場合、[名前を付けて保存]ダイアログで使用されるファイル名は、私の場合は機能しないURLのファイル名です。
Content-Disposition
をinline
に設定しようとしましたが、結果は同じです。
正しい方法は次のとおりです。
Content-Disposition: inline; filename="myfile.txt"
デフォルトで可能かどうかはわかりません。セキュリティ上の懸念により、ブラウザは処理可能なすべてのコンテンツタイプを送信するわけではありませんが、いくつかのAccept-Encoding
、これはシナリオではあまり役に立ちません。
ユーザーが何を好むかをユーザーに尋ね、その情報をプロファイルに保存することができます。