.NET MVC基础之返回文件类型📄
前言
上一篇文章讲了基础的返回类型,这篇文章讲解如何返回文件类型给浏览器下载。
系列文章
- .NET MVC基础之页面传值方式:https://pljzy.top/blog/post/83ab84c9ab7a8d5f.html
- 通过图片流来返回图片: https://pljzy.top/blog/post/ff1ee0f45a6f3ad9.html
返回类型介绍
在返回文件之前,要知道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字节数组。
效果展示


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