.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. 11.prometheus监控之黑盒(blackbox)监控

    一.黑盒监控 "白盒监控"--需要把对应的Exporter程序安装到被监控的目标主机上,从而实现对主机各种资源及其状态的数据采集工作. 但是由于某些情况下操作技术或其他原因,不是所 ...

  2. @Async异步失效的9种场景

    前言 最近星球中有位小伙伴问了我一个问题:他在项目某个方法使用@Async注解,但是还是该方法还是同步执行了,异步不起作用,到底是什么原因呢? 伪代码如下: @Slf4j @Service publi ...

  3. 如何将 Win10 企业版转换为专业版

    有时候,我们需要将 Windows 10 企业版转换为专业版.这种情况可能发生在您购买了预装企业版的电脑,但实际上只需要专业版的功能.本文将介绍如何简单地将 Windows 10 企业版转换为专业版. ...

  4. Java IO流文件

    Java IO流文件 创建文件 使用File类进行创建文件操作,创建该对象包含三种构造方法 new File(String pathname); //根据路径+文件名创建一个File对象 new Fi ...

  5. Atera 用户为最终用户提供对办公计算机的远程访问

    ​一言以蔽之:由 Splashtop 提供支持的 Atera 的客户远程访问功能允许使用 Atera 的 MSP 设置和管理其最终用户对办公计算机的远程访问. 新冠肺炎大流行已加速了全球远程工作的进程 ...

  6. 网络拓扑—DNS服务搭建

    目录 DNS服务搭建 网络拓扑 配置网络 DNS PC 安装DNS服务 配置DNS服务 创建正向查找区域 创建反向查找区域 创建子域名 PC机DNS域名解析 DNS服务搭建 网络拓扑 为了节省我的U盘 ...

  7. pageoffice 6 实现pdf加盖印章和签字功能

    PageOffice支持两种电子印章方案,可实现对Word.Excel.PDF文档加盖PageOffice自带印章或ZoomSeal电子印章(全方位保护.防篡改.防伪造).Word和Excel的盖章功 ...

  8. PaliGemma 正式发布 — Google 最新发布的前沿开放视觉语言模型

    PaliGemma 是 Google 推出的新一代视觉语言模型家族,能够接收图像与文本输入并生成文本输出. Google 团队已推出三种类型的模型:预训练(PT)模型.混合模型和微调(FT)模型,这些 ...

  9. 使用 Microsoft Edge WebDriver 自动执行和测试 WebView2 应用 Selenium

    https://learn.microsoft.com/zh-cn/microsoft-edge/webview2/how-to/webdriver

  10. 原型工具--canva可画

    Canva 是一个功能强大的在线设计平台,提供了丰富的设计工具和素材,包括原型设计.尽管 Canva 在原型设计方面并不像专门的原型设计工具(如Sketch.Figma.Adobe XD等)那样功能全 ...