ホームページ >バックエンド開発 >C++ >ASP.NET Web APIからファイルコンテンツの結果を返す方法は?

ASP.NET Web APIからファイルコンテンツの結果を返す方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-18 17:26:09929ブラウズ

How to Return a File Content Result from an ASP.NET Web API?

ASP.NET Web API でファイル コンテンツ結果を返す

FileContentResult は MVC コントローラーで PDF などのファイルを提供するためにうまく機能しますが、これを ApiController に直接移植すると課題が生じます。 StreamContent を使用しようとする単純な試みは多くの場合失敗し、ファイル自体ではなく JSON メタデータが生成されます。 解決策は ByteArrayContent を活用することにあります。

この改訂されたコード スニペットは、Web API からのファイル コンテンツの結果として PDF ファイルを効果的に返します。

<code class="language-csharp">[HttpGet]
public HttpResponseMessage Generate()
{
    using (var stream = new MemoryStream())
    {
        // Process the stream to generate PDF content here...

        var result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(stream.ToArray())
        };
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "CertificationCard.pdf"
        };
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        return result;
    }
}</code>

重要なのは、ByteArrayContent を使用してファイルのバイトをカプセル化し、ContentDisposition ヘッダーを「attachment」に設定してダウンロードを促すことです。 ContentType ヘッダーにより、クライアントによる適切な処理が保証されます。 using が適切に破棄されるようにするために、MemoryStream を使用することに注意してください。 このアプローチにより、Web API を介した PDF やその他のファイル タイプのシームレスな配信が可能になります。

以上がASP.NET Web APIからファイルコンテンツの結果を返す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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