これが私が達成したいことです:
- Windows Azure Blob Storage に保存されているファイルがあります (または、Web サーバー上になく、URL 経由でアクセスできる任意のファイル)。
- 最初に Web サーバーに実際にファイルをダウンロードせずに、ファイルを強制的にダウンロードしたい。つまり、ブラウザはこの外部 URL からファイルを自動的に取得し、ユーザーにダウンロードを求めるプロンプトを表示する必要があります。
考えられる解決策:
これまでに私が調査したこと(およびそれらが機能しない理由)は次のとおりです。
FileContentResult
ここで説明されているようなものを使用して、ASP.NET MVC でファイルを表示/ダウンロードに戻し、ファイルをダウンロードします。このソリューションでは、サーバー上のコンテンツをフェッチしてから、サーバーからブラウザーにストリーミングする必要があります。このため、このソリューションは機能しません。- HTML 5
download
属性の使用: HTML 5download
属性は問題なく機能しますが、問題は、これは非常に優れたソリューションですが、すべてのブラウザーでサポートされているわけではないということです。 - ファイルのコンテンツ タイプの変更: ファイルのコンテンツ タイプ プロパティを、ブラウザーが理解できないものに変更して、ファイルのダウンロードを強制するために (少なくとも私が所有するファイルに対して) できるもう 1 つの方法です。これは一部のブラウザーで機能する可能性がありますが、IE はコンテンツ タイプを超えてファイルのコンテンツを確認してコンテンツ タイプを判断するほどスマートであるため、すべてのブラウザーで機能するわけではありません。さらに、ファイルを所有していない場合、ファイルのコンテンツ タイプを変更することはできません。
簡単に言えば、コントローラーのアクションでファイルの URL を指定できるはずであり、何らかの形でブラウザーがファイルを強制的にダウンロードする必要があります。
これは達成できるものですか?はいの場合、これを達成する方法はありますか?