ASP.NET|ASP.NET Core实现动态获取文件并下载
ASP.NET Core 中,可以在静态目录添加文件,直接访问就可以下载。但是这种方法可能不安全,也不够灵活。
【ASP.NET|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实现动态获取文件并下载的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- vue-cli多页面应用实践之实现组件预览项目
- 使用Three.js实现炫酷的赛博朋克风格3D数字地球大屏
- Spring系列|SpringBoot实现文件上传/使用实现MultipartFile
- opencv实现图像倾斜校正
- H5动画效果
- 图像配准技术及其matlab编程实现_【答疑回顾】基于MATLAB编程、机器学习、深度学习在图像处理中实践技术...
- 微信小程序|毕业论文-基于微信小程序的图书馆管理系统设计与实现
- 微信小程序|微信小程序健康预约检查管理系统的开发与实现
- 干货分享(小技巧大用处之Bean管理类工厂多种实现方式)
- 【ASP.NET|【ASP.NET Core】选项类的依赖注入