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

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

Mary-Kate Olsen
リリース: 2024-10-29 08:39:02
オリジナル
386 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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