.NET Core MVC基础之返回文件类型
  g6De1cLJtsdy 2023年12月31日 26 0

.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字节数组。

效果展示

image

image

总结

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月31日 0

暂无评论

推荐阅读
  NPQODODLqddb   2024年05月17日   63   0   0 .NET
  mVIyUuLhKsxa   2024年05月17日   50   0   0 .NET
  XkHDHG7Y62UM   2024年05月17日   42   0   0 .NET
  f18CFixvrKz8   2024年05月18日   78   0   0 .NET
  rBgzkhl6abbw   2024年05月18日   71   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   39   0   0 .NET
  S34pIcuyyIVd   2024年05月17日   55   0   0 .NET
  gKJ2xtp6I8Y7   2024年05月17日   49   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   32   0   0 .NET
g6De1cLJtsdy