首页 > 后端开发 > C++ > 如何在ASP.NET MVC中返回以查看或下载的文件?

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

Linda Hamilton
发布: 2025-01-31 14:11:10
原创
886 人浏览过

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(完整框架)中的示例实现,该实现还解决了国际字符处理问题:

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); // 返回文件数据和内容类型
}
登录后复制

通过使用 ContentDispositionHeaderValue 类,我们可以确保正确处理文件名中的国际字符。这种方法允许查看和下载文件,并根据浏览器的首选项确定所需的行为。

以上是如何在ASP.NET MVC中返回以查看或下载的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板