首頁 > 後端開發 > C++ > 如何從 ASP.NET Web API 控制器返回文件(例如 PDF)?

如何從 ASP.NET Web API 控制器返回文件(例如 PDF)?

Susan Sarandon
發布: 2025-01-18 17:22:09
原創
874 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板