ASP.NET Core Web API コントローラーからファイルを返すにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-01 04:14:02
オリジナル
187 人が閲覧しました

How to Return Files from an ASP.NET Core Web API Controller?

ASP.NET Core Web API でのファイル ダウンロードの処理

ASP.NET Web API コントローラーからファイルを返そうとすると、応答は JSON として扱われます。これを解決するには、ASP.NET Core でファイルをダウンロードするための正しいアプローチを理解することが重要です。

ASP.NET Core Web API でファイルを返すには、HttpResponseMessage の代わりに派生した IActionResult を返す必要があります。フレームワークは HttpResponseMessage をモデルとして解釈し、JSON 応答の問題を引き起こします。

以下は、IActionResult を使用してファイルを返す方法を示す更新されたコード例です。

<code class="csharp">[Route("api/[controller]")]
public class DownloadController : Controller
{
    // GET api/download/12345abc
    [HttpGet("{id}")]
    public async Task<IActionResult> Download(string id)
    {
        Stream stream = await GetStreamBasedOnIdAsync(id);

        if (stream == null)
            return NotFound(); // Returns a NotFoundResult with Status404NotFound response

        return File(stream, "application/octet-stream", $"{FileName}.{FileExtension}"); // Returns a FileStreamResult
    }
}</code>
ログイン後にコピー

注: ストリームに対して using ステートメントを使用しないでください。そうしないと、応答が送信される前に破棄され、例外または破損した応答が発生します。フレームワークは、応答が完了するとストリームの破棄を自動的に処理します。

以上がASP.NET Core Web API コントローラーからファイルを返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!