免責事項ダウンロードしたファイル名を設定するためにクライアントに送り返す Content-Disposition ヘッダーを認識していますが、私の問題はそれよりも少し複雑です
基本的にドキュメント検索/表示アプリケーション (ドキュメントを検索してからブラウザーでレンダリングする) であるアプリケーション (Rails 3.1.3 を使用する RubyOnRails) があります。これは、iframe を使用して実現されます。
<iframe src="<%= @frameURL %>" width="100%" height="100%">
@frameURL
plugin
Documents コントローラーの関数の呼び出しです。プラグイン関数は、バックエンド API に対して RESTful 呼び出しを行い、参照されたドキュメントを取得してから、ドキュメントのコンテンツをブラウザに送り返して iframe 内でレンダリングします。
これは、JPEG、PDF、TXT などのドキュメントでは完全に機能します。ただし、ブラウザがコンテンツ タイプの処理方法を認識していない場合 (Word ドキュメントなど - Mac OS-X を実行している場合)、ブラウザは返されたファイルをダウンロードします。 as plugin.doc
<- これは Content-Disposition ヘッダーを設定していないことに注意してください。
ダウンロードする必要があるときにファイルに適切な名前を付けたいので、Content-Disposition ヘッダーを設定します。
response.headers['Content-Disposition'] = "attachment; filename.extension"
ファイルは次のようにダウンロードされますがfilename.doc
、このヘッダー セットを使用すると、ブラウザが内部的にレンダリングできる JPEG などのファイルもダウンロードされます。
質問:
plugin.extension
Content-Disposition ヘッダーを設定していない場合、レールまたはブラウザーがどこで名前を取得しているか知っている人はいますか?Content-Disposition を設定する方法はありますが、ブラウザがドキュメントをレンダリングできない場合にのみ適用する方法はありますか? そのため、デフォルトではブラウザが可能なすべてを処理する必要があり、フォールバックとして、ブラウザは Content-Disposition コンテンツを使用して名前を付けますダウンロードしたファイル。
ありがとう!