.NET Core MVC基础之返回文件类型
.NET Core MVC基础之返回文件类型
前言
上一篇文章讲了基础的返回类型,这篇文章讲解如何返回文件类型给浏览器下载。
系列文章
返回类型介绍
在返回文件之前,要知道MIME 类型,这里介绍常用的几种:
text/plain:纯文本文件text/html:HTML 文件text/css:CSS 文件application/json:JSON 数据application/xml:XML 数据application/pdf:PDF 文件image/jpeg:JPEG 图像文件image/png:PNG 图像文件audio/mpeg:MPEG 音频文件video/mp4:MP4 视频文件
代码实现
我这里这里展示返回图片类型。
返回图片
<a href="/Home/DownloadFile">FileResult返回文件</a>
返回FileStreamResult对象:适用于文件较大并且以流的方式逐块读取文件
public IActionResult DownloadFile()
{
string filePath = Path.Combine(_webHostEnvironment.WebRootPath,"1.jpg");
string contentType = "image/jpeg";
FileStream fileStream = new FileStream(filePath, FileMode.Open);
return new FileStreamResult(fileStream, contentType)
{
FileDownloadName = "1.jpg"
};
}
返回 FileContentResult 对象:将文件内容作为字节数组直接返回给客户端。适用于文件较小且可以完全加载到内存中的情况。
public IActionResult DownloadFile()
{
string filePath = Path.Combine(_webHostEnvironment.WebRootPath, "1.jpg");
byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);
string contentType = "image/jpeg";
return new FileContentResult(fileBytes, contentType)
{
FileDownloadName = "1.jpg"
};
}
直接使用File方法
public IActionResult DownloadFile()
{
string filePath = Path.Combine(_webHostEnvironment.WebRootPath, "1.jpg");
byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);
string contentType = "image/jpeg";
return File(fileBytes, contentType,"1.jpg");
}
public IActionResult DownloadFile()
{
string filePath = Path.Combine(_webHostEnvironment.WebRootPath, "1.jpg");
FileStream fileStream = new FileStream(filePath, FileMode.Open);
string contentType = "image/jpeg";
return File(fileStream, contentType,"1.jpg");
}
总的来说,返回文件可以通过返回文件流,也可以通过返回byte字节数组。
效果展示


总结
这里只是简单的介绍,有任何问题欢迎评论交流~
.NET Core MVC基础之返回文件类型的更多相关文章
- ASP.NET MVC – 关于Action返回结果类型的事儿(上)
原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一. ASP.NET MVC 1.0 Result 几何? Action的 ...
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
EF Core使用SQL调用返回其他类型的查询 假设你想要 SQL 本身编写,而不使用 LINQ. 需要运行 SQL 查询中返回实体对象之外的内容. 在 EF Core 中,执行该操作的另一种方法 ...
- Asp.net MVC 中Controller返回值类型ActionResult
[Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...
- ASP.NET Core MVC如何上传文件及处理大文件上传
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发AS ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View
Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法 返回的对象要求实现了IActionResult接口 继承父类,并引入命名空间 写this点就出现很多东西,这些就是上下文的信 ...
- python基础复习-1-1文件类型、变量、运算符、表达式
文件类型: .py python源文件 由python解释器执行 .pyc python源码编译后生成的文件(字节代码) 编译方法: 源码文件中使用py_compile模块 import py_com ...
- MVC方法的返回值类型
MVC方法返回值类型 ModelAndView返回值类型: 1.当返回为null时,页面不跳转. 2.当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转. 3.当返回值指定了视图名,程序会按照 ...
- dotNET开发之MVC中Controller返回值类型ActionResult方法总结
1.返回ViewResult视图结果,将视图呈现给网页 2. 返回PartialViewResult部分视图结果,主要用于返回部分视图内容 3. 返回ContentResult用户定义的内容类型 4. ...
- MVC 中Controller返回值类型ActionResult
下面列举Asp.net MVC中Controller中的ActionResult返回类型 1.返回ViewResult视图结果,将视图呈现给网页 public ActionResult About() ...
- ASP.NET MVC中Controller返回值类型ActionResult
1.返回ViewResult视图结果,将视图呈现给网页 public class TestController : Controller { //必须存在Controller\Test\Index.c ...
随机推荐
- visual studio 2008的试用版评估期已结束(附无法使用产品密钥)的解决方法
visual studio 2008过了试用期后再次启动提示对话框:visual studio的试用版评估期已结束. 解决办法: 第一步,在"控制面板"中启动"添加删除程 ...
- 【爬虫+情感判定+Top10高频词+词云图】"乌克兰"油管热评python舆情分析
目录 一.分析背景 二.整体思路 三.代码讲解 3.1 爬虫采集 3.2 情感判定 3.3 Top10高频词 3.4 词云图 四.得出结论 五.同步视频演示 六.附完整源码 一.分析背景 乌克兰局势这 ...
- 06 curl 操作elasticsearch的CRUD
目录 查看健康状态 查询当前es集群中所有的indices 创建索引并配置: 创建索引 删除索引 获取mapping 创建mapping 添加字段 插入记录 检索 修改 删除 中文文档: https: ...
- rails 写入日志函数
json_object={ "ip"=> "127.0.0.1", "ports"=> '80,135', "data ...
- goframe v2.1.0 gf-cli的使用
目录 1.视频教程 2.官方文档 3.下载 linux系统安装环境 windows系统安装环境 4.创建项目 5.启动项目 6.交叉编译 7.gen命令的使用 8.orm的操作 1.视频教程 http ...
- Linux中的find
find命令在硬盘上进行文件的查找,比起whereis与locate会比较耗时. 与时间有关的选项 在Linux当中一个文件有mtime,ctime,atime,find在搜索时可以配置这3种时间. ...
- Lua热更学习--使用toLua中的协程
[6] C#访问调table类中的成员变量和函数 访问table中的变量和函数 lua中可以使用table作为class,因此对table中的函数访问调用是必要的根据前面对table访问和functi ...
- layui合并单元格
在别人的基础上解决了多列合并和同一个页面多个表格的问题 1 //合并单元格 2 function merge(id,res, columsName, columsIndex) { 3 4 var da ...
- 微信小程序订阅消息开发指南(java)
微信小程序订阅消息开发指南(java) 第一步 准备阶段 1.你得有一个小程序,并且认证了,个人的也行 2.开通订阅消息 小程序后台->功能->订阅消息 3.公共模板库选择一个模板 选择的 ...
- linux内核参数调优和Linux实例常用内核网络参数介绍与常见问题处理
问题1 并发场景下,常常会出现一个进程最大文件句柄数不足的情况,会报如下错误: 24: Too many open files 解决办法 ulimit -a S:表示软限制,超出设定的值会告警. H ...