ホームページ  >  記事  >  バックエンド開発  >  JSON 形式を使用せずに ASP.Net Core Web API からファイルを返す方法

JSON 形式を使用せずに ASP.Net Core Web API からファイルを返す方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 18:16:02398ブラウズ

How to Return Files from ASP.Net Core Web API Without JSON Formatting?

ASP.Net Core Web API でファイルを返す

問題:

Web API コントローラー多くの場合、ファイルを返す機能が必要です。ただし、ContentType を application/octet-stream として設定する手順を実行した場合でも、返された HttpResponseMessage が JSON としてフォーマットされる場合に問題が発生する可能性があります。

解決策:

ASP.Net Core では、アクションに IActionResult インターフェイスを利用することで、この問題が解決されます。フレームワークは、このアプローチを使用して HttpResponseMessage をモデルとして解釈します。

実装方法は次のとおりです:

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

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

        return File(stream, "application/octet-stream", $"{filename.ext}"); // Returns a FileStreamResult
    }
}</code>

注:

フレームワークは自動的に応答が完了したらストリームを破棄します。 using ステートメントを時期尚早に使用すると、例外または破損した応答が発生します。

以上がJSON 形式を使用せずに ASP.Net Core Web API からファイルを返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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