ASP.NET MVCでファイルを表示/ダウンロードに戻す
データベースに格納されているファイルをASP.NET MVCのユーザーに送り返すときに問題が発生しました。私が欲しいのは、2つのリンクをリストするビューです。1つはファイルを表示し、ブラウザに送信されたMIMEタイプに処理方法を決定させ、もう1つはダウンロードを強制します。 呼び出されたファイルを表示することを選択しSomeRandomFile.bak、ブラウザにこのタイプのファイルを開くための関連付けられたプログラムがない場合は、デフォルトのダウンロード動作に問題はありません。ただし、というファイルを表示することを選択した場合、SomeRandomFile.pdfまたはSomeRandomFile.jpgファイルを単に開いてほしい場合。ただし、ファイルの種類に関係なくダウンロードプロンプトを強制できるように、ダウンロードリンクを脇に置いておきます。これは理にかなっていますか? 私が試したところFileStreamResult、ほとんどのファイルで機能しますが、そのコンストラクタはデフォルトでファイル名を受け入れないため、不明なファイルにはURLに基づいてファイル名が割り当てられます(コンテンツタイプに基づいて付与する拡張子がわかりません)。ファイル名を指定して強制すると、ブラウザがファイルを直接開くことができなくなり、ダウンロードプロンプトが表示されます。他の誰かがこれに遭遇しましたか? これらは、これまでに試した例です。 //Gives me a download prompt. return File(document.Data, document.ContentType, document.Name); //Opens if it is a known extension type, downloads otherwise (download has bogus name and missing extension) return new FileStreamResult(new MemoryStream(document.Data), document.ContentType); //Gives me a download prompt (lose the ability to open by default if known …