ホームページ > バックエンド開発 > C++ > ASP.NET Web API コントローラーからファイル (PDF など) を返す方法は?

ASP.NET Web API コントローラーからファイル (PDF など) を返す方法は?

Susan Sarandon
リリース: 2025-01-18 17:22:09
オリジナル
927 人が閲覧しました

How to Return Files (e.g., PDFs) from ASP.NET Web API Controllers?

ASP.NET Web API コントローラーからのファイルの提供

MVC コントローラーは FileContentResult を使用して PDF などのファイルを送信しますが、ApiControllers には別のアプローチが必要です。 一般的な IHttpActionResult 戻り値の型は、ファイル配信用に設計されていません。

よくある落とし穴への対処

StreamContent を直接使用すると、多くの場合失敗し、ブラウザーに実際のファイルの代わりにメタデータが表示されます。

効果的な ByteArrayContent 方法

最も信頼性の高い方法は、ファイルをバイト配列に変換し、ByteArrayContent を使用することです。これにより、適切なファイル配信が保証されます。

コード例: PDF を返す

この例では、

:ApiController から PDF を生成して返す方法を示します。

<code class="language-csharp">[HttpGet]
public HttpResponseMessage Generate()
{
    using (var stream = new MemoryStream())
    {
        // ... PDF generation logic using stream ...

        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>
ログイン後にコピー
このアプローチにより、ファイル配信の成功が保証され、クライアント (ブラウザまたは他の API コンシューマー) がファイルを正しくダウンロードして表示できるようになります。

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

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