ホームページ > バックエンド開発 > C++ > FileResult を使用して ASP.NET MVC で任意の種類のファイルをダウンロードする方法

FileResult を使用して ASP.NET MVC で任意の種類のファイルをダウンロードする方法

Mary-Kate Olsen
リリース: 2025-01-27 06:46:09
オリジナル
359 人が閲覧しました

How to Download Files of Any Type in ASP.NET MVC Using FileResult?

ユニバーサル ファイル ダウンロードに ASP.NET MVC の FileResult を使用する

ASP.NET MVC の FileResult は、ファイルのダウンロードを処理するための堅牢なソリューションを提供します。 ただし、標準的な例は特定のファイル タイプに焦点を当てていることが多く、さまざまなファイル タイプのダウンロードをどのように管理するかという問題は未解決のままです。この記事ではその課題に取り組みます。

問題: 不明なタイプのファイルをダウンロードする

中心的な問題は、ファイルの種類が事前に定義されていないファイルをダウンロードすることです。 さまざまなファイル拡張子を扱う場合、標準的な方法では困難が生じる可能性があります。

解決策: FileResult と Octet-Stream MIME タイプの活用

多様なファイルタイプを処理する鍵は、FileResult クラスの使用と MediaTypeNames.Application.Octet MIME タイプの指定にあります。この汎用 MIME タイプは、あらゆるファイル タイプに適したオクテット ストリームを示します。

これを実装する方法は次のとおりです:

<code class="language-csharp">public FileResult Download()
{
    byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext");
    string fileName = "myfile.ext";
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}</code>
ログイン後にコピー

このコード スニペットは次のことを示しています。

  • fileBytes: ファイル システムから直接読み取られる、ファイルのバイナリ コンテンツが含まれます。
  • MediaTypeNames.Application.Octet: ユニバーサル オクテット ストリーム MIME タイプを指定します。
  • fileName: ダウンロードに必要なファイル名を設定します。

ファイルパスと名前の処理の改善

パスの連結とアンダースコアに関する潜在的な問題を回避するために、より堅牢なアプローチとして、ファイルのパスと名前に個別のパラメーターを使用します。

<code class="language-csharp">public FileResult Download(string filePath, string fileName)
{
    byte[] fileBytes = GetFile(filePath); // Helper function to read file bytes
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

private byte[] GetFile(string filePath)
{
    return System.IO.File.ReadAllBytes(filePath);
}</code>
ログイン後にコピー

この改訂された方法では、ファイルのパスと名前を明確に分離することで、セキュリティと読みやすさが強化されています。 GetFile ヘルパー関数はコードの構成を改善します。 このアプローチにより、ASP.NET MVC アプリケーションでファイルのダウンロードを処理するためのより柔軟で安全な方法が提供されます。

以上がFileResult を使用して ASP.NET MVC で任意の種類のファイルをダウンロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート