首頁 >後端開發 >C++ >如何從 ASP.NET Web API 傳回文件內容結果?

如何從 ASP.NET Web API 傳回文件內容結果?

Patricia Arquette
Patricia Arquette原創
2025-01-18 17:26:09928瀏覽

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

在 ASP.NET Web API 中傳回檔案內容結果

雖然 FileContentResult 在 MVC 控制器中可以很好地提供 PDF 等文件,但直接將其移植到 ApiController 會帶來挑戰。 使用 StreamContent 的簡單嘗試通常會失敗,導致產生 JSON 元資料而不是檔案本身。 解決方案在於利用ByteArrayContent

此修改後的程式碼片段有效地傳回 PDF 檔案作為 Web API 的檔案內容結果:

<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標頭設為「附件」以提示下載。 ContentType 標頭確保客戶端正確處理。 請注意使用 using 以確保 MemoryStream 正確處置。 這種方法可以透過 Web API 無縫交付 PDF 和其他文件類型。

以上是如何從 ASP.NET Web API 傳回文件內容結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn