.NET Core MVC基础之返回文件类型

  • .NET Core MVC基础之返回文件类型已关闭评论
  • 164 次浏览
  • A+
所属分类:.NET技术
摘要

上一篇文章讲了基础的返回类型,这篇文章讲解如何返回文件类型给浏览器下载。


.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基础之返回文件类型

.NET Core MVC基础之返回文件类型

总结

这里只是简单的介绍,有任何问题欢迎评论交流~