首頁  >  文章  >  後端開發  >  如何從 ASP.NET Core Web API 傳回檔案?

如何從 ASP.NET Core Web API 傳回檔案?

Susan Sarandon
Susan Sarandon原創
2024-11-01 09:20:02207瀏覽

How to Return Files from an ASP.NET Core Web API?

在ASP.NET Core Web API 中下載檔案

從ASP.NET Core Web API 傳回檔案可能具有挑戰性,因為預設行為通常會導致HttpResponseMessage 被序列化為JSON。為了解決這個問題,我們需要使用不同的方法。

在提供的程式碼片段中,應該使用 IActionResult 介面傳回派生的 ActionResult 類型。透過傳回 FileStreamResult,我們可以指定要下載的檔案的內容類型和檔案名稱。

<code class="csharp">[Route("api/[controller]")]
public class DownloadController : Controller
{
    [HttpGet("{id}")]
    public async Task<IActionResult> Download(string id)
    {
        Stream stream = await GetStreamBasedOnIdAsync(id);

        if (stream == null)
            return NotFound();

        return File(stream, "application/octet-stream", $"{filename}.ext");
    }
}</code>

在此更新的程式碼中:

  • 實作了 IActionResult 介面。
  • FileStreamResult 用於傳回檔案。
  • 設定下載檔案的內容類型和檔案名稱。

此方法可確保 HttpResponseMessage 包含正確的內容類型和檔案名,允許從您的 Web API 無縫下載檔案。

以上是如何從 ASP.NET Core Web API 傳回檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn