>백엔드 개발 >C++ >ASP.NET 웹 API에서 FileContentResult(PDF)를 반환하는 방법은 무엇입니까?

ASP.NET 웹 API에서 FileContentResult(PDF)를 반환하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-18 17:31:09888검색

How to Return a FileContentResult (PDF) from an ASP.NET Web API?

ASP.NET 웹 API에서 PDF 파일 반환

표준 MVC 컨트롤러에서는 FileContentResult을 사용하여 PDF를 반환하는 것이 간단합니다. 하지만 ApiController에는 다른 접근 방식이 필요합니다.

문제

IHttpActionResult에서 일반적인 ApiController 반환 유형을 사용하면 PDF를 반환할 때 문제가 발생합니다. 일부 예에서 알 수 있듯이 단순히 StreamContent을 반환하면 브라우저에 PDF 파일 자체 대신 헤더가 표시되는 경우가 많습니다.

올바른 방법

ByteArrayContent 대신 StreamContent을 사용하는 것이 핵심입니다. 이는 적절한 전송을 위해 스트림 데이터를 바이트 배열로 변환합니다. 개선된 예는 다음과 같습니다.

<code class="language-csharp">[HttpGet]
public HttpResponseMessage Generate()
{
    MemoryStream stream = new MemoryStream();
    // ... PDF generation code to populate the stream ...

    HttpResponseMessage 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을 사용하여 PDF를 바이트 배열로 보냅니다. 결정적으로 ContentDisposition 헤더를 attachment(브라우저에게 파일을 다운로드하라고 지시)로 설정하고 ContentTypeapplication/octet-stream(바이너리 파일을 나타냄)으로 설정합니다. 이렇게 하면 PDF가 브라우저에서 렌더링되지 않고 올바르게 다운로드됩니다.

위 내용은 ASP.NET 웹 API에서 FileContentResult(PDF)를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.