.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基础之返回文件类型的更多相关文章

  1. ASP.NET MVC – 关于Action返回结果类型的事儿(上)

    原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一.         ASP.NET MVC 1.0 Result 几何? Action的 ...

  2. 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 中,执行该操作的另一种方法 ...

  3. Asp.net MVC 中Controller返回值类型ActionResult

    [Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...

  4. ASP.NET Core MVC如何上传文件及处理大文件上传

    用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发AS ...

  5. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View

    Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法 返回的对象要求实现了IActionResult接口 继承父类,并引入命名空间 写this点就出现很多东西,这些就是上下文的信 ...

  6. python基础复习-1-1文件类型、变量、运算符、表达式

    文件类型: .py python源文件 由python解释器执行 .pyc python源码编译后生成的文件(字节代码) 编译方法: 源码文件中使用py_compile模块 import py_com ...

  7. MVC方法的返回值类型

    MVC方法返回值类型 ModelAndView返回值类型: 1.当返回为null时,页面不跳转. 2.当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转. 3.当返回值指定了视图名,程序会按照 ...

  8. dotNET开发之MVC中Controller返回值类型ActionResult方法总结

    1.返回ViewResult视图结果,将视图呈现给网页 2. 返回PartialViewResult部分视图结果,主要用于返回部分视图内容 3. 返回ContentResult用户定义的内容类型 4. ...

  9. MVC 中Controller返回值类型ActionResult

    下面列举Asp.net MVC中Controller中的ActionResult返回类型 1.返回ViewResult视图结果,将视图呈现给网页 public ActionResult About() ...

  10. ASP.NET MVC中Controller返回值类型ActionResult

    1.返回ViewResult视图结果,将视图呈现给网页 public class TestController : Controller { //必须存在Controller\Test\Index.c ...

随机推荐

  1. SpringBoot项目预加载数据——ApplicationRunner、CommandLineRunner、InitializingBean 、@PostConstruct区别

    0.参考.业务需求 参考: https://www.cnblogs.com/java-chen-hao/p/11835120.html#_label1 https://zhuanlan.zhihu.c ...

  2. Spark中的闭包引用和广播变量

    闭包引用 概念 所有编程语言都有闭包的概念,闭包就是在一个函数中引用了函数外的变量. Spark中,普通的变量是在Driver程序中创建的,RDD的计算是在分布式集群中的task程序上进行的.因此,当 ...

  3. AeroAdmin、TeamViewer和Splashtop Business Access的区别

    ​Hi everyone! 今天又是喜闻乐见的吃瓜时间,王婆卖瓜,不得不夸. 炎炎夏日,就给大家送个大西瓜吧.望梅止渴也是极好的. ------官宣分割线------ Splashtop是针对个人和企 ...

  4. 降本提效 | AIRIOT设备运维管理解决方案

      传统运维多是使用在本地化系统,以人工运维和独立系统执行运维工作,重点关注的是设施运行,存在以下几个问题:   1.信息孤岛:本地化系统的接口不同,功能单一独立,各个系统之间的数据无法对接.交互,形 ...

  5. 异构数据源同步之数据同步 → datax 改造,有点意思

    开心一刻 去年在抖音里谈了个少妇,骗了我 9 万 后来我发现了,她怕我报警 她把她表妹介绍给我 然后她表妹又骗了我 7 万 DataX DataX 是什么,有什么用,怎么用 不做介绍,大家自行去官网( ...

  6. docker镜像仓库管理Harbor

    一 部署Harbor 前提: Harbor需要运行在docker上面,所以首先需要在harbor部署机器上面自行部署docker和docker-compose docker-compose安装命令如下 ...

  7. 大数据之Hadoop中HDFS的故障排除

    NameNode故障处理 1)需求 NameNode进程挂了并且存储的数据也丢失了 2)故障模拟 (1)kill -9 NameNode进程 kill -9 19886 (2)删除NameNode储存 ...

  8. 你好Avalonia框架

    https://docs.avaloniaui.net/docs/getting-started/ 起因公司事业部是做移动等营业厅办理相关业务,无纸化系统的.简单的说就是以前去营业厅办理业务都需要各种 ...

  9. MR+meta分析的摘录

    第四篇公众号:来自微信 天桥下的卖艺者 零基础说科研,仅为个人学习用,如有侵权,可以删除 吸烟没什么创意,唯一的创意就是加入了MR和meta分析,作者显示介绍吸烟与多种疾病之间的因果关系扔不明确, 第 ...

  10. docker创建容器数据持久化资源限制基础命令

    1. docker简介和核心概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使 ...