ホームページ >バックエンド開発 >C++ >ASP.Net Core Web API でファイルをバイナリ応答として返すにはどうすればよいですか?

ASP.Net Core Web API でファイルをバイナリ応答として返すにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-29 08:39:02378ブラウズ

How Can I Return a File as a Binary Response in ASP.Net Core Web API?

ASP.Net Core Web API で JSON に変換されたファイルが返される問題を解決する

ASP.Net Core Web API では、ファイルを JSON 応答として返すことができます。面倒な。当然のことながら、ファイルを元のバイナリ形式で返したいと思うでしょう。この問題を解決するには、ASP.Net Core の結果の型の概念を詳しく調べる必要があります。

IActionResult インターフェイスについて

ASP.Net Core では、IActionResultアクションメソッドの結果を表すインターフェースです。 HTTP 応答の本文とステータス コードをカプセル化し、応答を柔軟にカスタマイズできるようにします。

解決策: FileStreamResult を返す

ファイルを返すには、 IActionResult を実装する FileStreamResult クラス。これにより、応答のファイル ストリーム、コンテンツ タイプ、およびファイル名を指定できるようになります。

次のコード スニペットは、このアプローチを示しています。

<code class="csharp">[Route("api/[controller]")]
public class DownloadController : Controller
{
    [HttpGet("{id}")]
    public async Task<IActionResult> Download(string id)
    {
        Stream stream = await // Get stream based on id here

        if (stream == null)
            return NotFound(); // Handle not found scenario

        return File(stream, "application/octet-stream", "filename.ext");
    }
}</code>
このコード内:

    File() は、指定されたストリーム、コンテンツ タイプ、およびファイル名で FileStreamResult を作成します。
  • フレームワークは、HTTP 応答ステータス コードを自動的に 200 OK に設定します。
  • フレームワークは、例外を回避するために、応答が完了したときのストリーム。

注:

    Download メソッド内のストリームで using ステートメントを使用する場合、応答が送信される前にストリームが破棄され、エラーが発生する可能性があります。
  • NotFound() 呼び出しは、HTTP ステータス コード 404 Not Found の NotFoundResult を返します。

以上がASP.Net Core Web API でファイルをバイナリ応答として返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。