首頁 >後端開發 >C++ >如何在ASP.NET MVC中返回以查看或下載的文件?

如何在ASP.NET MVC中返回以查看或下載的文件?

Linda Hamilton
Linda Hamilton原創
2025-01-31 14:11:10861瀏覽

How to Return Files for Viewing or Downloading in ASP.NET MVC?

在 ASP.NET MVC 中返回文件以供查看或下載

在 ASP.NET MVC 中,將存儲在數據庫中的文件返回給用戶可能會帶來挑戰。目標是提供兩種選擇:使用瀏覽器確定的 mimetype 由瀏覽器使用合適的應用程序查看文件,以及強制下載文件,而不管文件類型如何。

文件處理選項

FileStreamResult 類通常用於發送文件。但是,它默認情況下無法指定文件名,這在處理未知文件擴展名時會導致意外行為。強制指定文件名會導致瀏覽器無法直接打開文件。

為了解決這個問題,我們可以利用 ContentDisposition 類並將 FileName 屬性設置為文檔的實際名稱。此外,將 Inline 屬性設置為 false 會提示瀏覽器下載文件,而不是嘗試打開它。

代碼示例

以下是 ASP.NET Core(完整框架)中的示例實現,該實現還解決了國際字符處理問題:

<code class="language-csharp">public ActionResult Download()
{
    Document document = ...; // 获取文件数据
    var cd = new ContentDispositionHeaderValue("attachment")
    {
        FileNameStar = document.FileName // 使用 FileNameStar 属性处理文件名中的特殊字符
    };
    Response.Headers.Add(HeaderNames.ContentDisposition, cd.ToString());

    return File(document.Data, document.ContentType); // 返回文件数据和内容类型
}</code>

通過使用 ContentDispositionHeaderValue 類,我們可以確保正確處理文件名中的國際字符。這種方法允許查看和下載文件,並根據瀏覽器的首選項確定所需的行為。

以上是如何在ASP.NET MVC中返回以查看或下載的文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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