ASP.NET Core实现动态获取文件并下载

 更新时间:2022年01月14日 09:48:18   作者:痴者工良  
这篇文章介绍了ASP.NET Core实现动态获取文件并下载的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

ASP.NET Core 中,可以在静态目录添加文件,直接访问就可以下载。但是这种方法可能不安全,也不够灵活。

我们可以在 Controller 控制器中 添加 一个 Action,通过此Action,即可访问服务器的任何文件。

Action 格式

    public FileResult Down()
        {
        return File(xxx,xxx,xxx);
        }

File() 对象

问题在于这个 File() 对象,应该怎么写

笔者举个例子

在100%无错的条件下,文件路径 F:\a.txt

  • 1,创建一个文件流 FileStream
  • 2,获取文件类型 Content-Type,可以用代码获取,也可以用字符串填写
  • 3,设置文件名
var stream = System.IO.File.OpenRead(“F:\a.txt”);  //创建文件流

txt 的文件类型为 text/plain

设置文件名为 b.txt

那么返回的File 代码如下

return File(stream, "text/plain", “b.txt");

就这么简单。

获取文件类型

C#获取文件类型可以参考

https://www.jb51.net/article/234584.htm

关于文件类型对应得Context-Type

http://tools.jb51.net/table/http_content_type

笔者附上小方法

//引入
using System.IO;

var contentype = MimeMapping.GetMimeMapping(fileName);      //获取文件类型

动态获取文件

 public FileResult DownSH(string DownM)  //要下载文件码
        {
            var path = _sqlContext.jexusSqls.FirstOrDefault(a => a.DownM == DownM.ToString()).FilePath;  //在数据库查找此文件码的文件地址
            if (!System.IO.File.Exists(path)) return null;

            var stream = System.IO.File.OpenRead(path);  //创建文件流

            return File(stream, "application/x-sh", DownM+".sh");
        }

编写方式多种多样,只需要解决文件流、文件类型、文件名,这三个核心即可。

到此这篇关于ASP.NET Core实现动态获取文件并下载的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • linq 查询 Linq 高级查询实例代码

    linq 查询 Linq 高级查询实例代码

    本文针对Linq 高级查询实例进行详解,需要了解的朋友可以参考下
    2013-01-01
  • asp.net core项目中如何使用html文件

    asp.net core项目中如何使用html文件

    这篇文章主要给大家介绍了关于asp.net core项目中如何使用html文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面是随着小编来一起学习学习吧。
    2018-02-02
  • asp.net core 修改默认端口的几种方法

    asp.net core 修改默认端口的几种方法

    这篇文章主要介绍了asp.net core 修改默认端口的几种方法,文中讲解非常详细,代码和图片帮助大家更好的理解,感兴趣的朋友可以了解下
    2020-06-06
  • 对ASP.Net的WebAPI项目进行测试

    对ASP.Net的WebAPI项目进行测试

    这篇文章介绍了对WebAPI项目进行测试的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • VS2010新建站点发布并访问步骤详解

    VS2010新建站点发布并访问步骤详解

    这篇文章主要介绍了VS2010新建站点发布并访问详细步骤,主要以具体每个步骤截图的形式从站点新建,配置IIS再到发布和访问网站进行讲解,需要的朋友可以参考下
    2015-08-08
  • .NET之后台用户权限管理实现

    .NET之后台用户权限管理实现

    在功能性比较强大的后台管理网站处于各种角度考虑多有应用权限管理功能。以公司内部管理系统为例,管理员根据不同员工所在不同部门赋予其不同权限,或者根据上下级隶属关系实现“金字塔”管理。本文内容有不尽不实之处恳请指正。
    2013-02-02
  • ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)

    ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)

    这篇文章主要为大家详细介绍了ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0),感兴趣的小伙伴们可以参考一下
    2016-07-07
  • c#将Excel数据导入到数据库的实现代码

    c#将Excel数据导入到数据库的实现代码

    这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下
    2013-12-12
  • .Net使用加密升级数据安全

    .Net使用加密升级数据安全

    这篇文章介绍了.Net使用加密升级数据安全,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • uni-app结合.NET 7实现微信小程序订阅消息推送

    uni-app结合.NET 7实现微信小程序订阅消息推送

    本文主要介绍了uni-app结合.NET 7实现微信小程序订阅消息推送,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论