首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板