ASP.NET 웹 API 컨트롤러에서 파일 제공
MVC 컨트롤러는 FileContentResult
을 사용하여 PDF와 같은 파일을 쉽게 보낼 수 있지만 ApiControllers
에는 다른 접근 방식이 필요합니다. 일반적인 IHttpActionResult
반환 유형은 파일 전달용으로 설계되지 않았습니다.
일반적인 문제 해결
StreamContent
을 직접 사용하면 실패하는 경우가 많아 브라우저에 실제 파일 대신 메타데이터가 표시됩니다.
효과적인 ByteArrayContent
방법
가장 안정적인 방법은 파일을 바이트 배열로 변환하고 ByteArrayContent
을 사용하는 것입니다. 이렇게 하면 파일이 제대로 전달될 수 있습니다.
코드 예: PDF 반환
이 예는 ApiController
:
<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 웹 API 컨트롤러에서 파일(예: PDF)을 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!