首页 >后端开发 >C++ >如何从 ASP.NET Web API 返回文件内容结果?

如何从 ASP.NET Web API 返回文件内容结果?

Patricia Arquette
Patricia Arquette原创
2025-01-18 17:26:09966浏览

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