如何在.Net MVC中将文件从磁盘流式传输到客户端浏览器



我的操作将一个文件从磁盘返回到客户端浏览器,目前我有:

public FileResult MediaDownload ()
{
  byte[] fileBytes = System.IO.File.ReadAllBytes(Server.MapPath(filePath));
  return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

这样,它将整个文件加载到内存中,并且速度非常慢,因为下载是在文件加载到存储器后开始的。处理此类文件下载的最佳方法是什么?

感谢

好的,我遇到了这个论坛讨论:http://forums.asp.net/t/1408527.aspx

工作起来很有魅力,正是我所需要的!

更新

遇到这个问题如何在ASP.NET响应中传递大文件?事实证明它要简单得多,下面是我现在的做法:

var length = new System.IO.FileInfo(Server.MapPath(filePath)).Length;
Response.BufferOutput = false;
Response.AddHeader("Content-Length", length.ToString());
return File(Server.MapPath(filePath), System.Net.Mime.MediaTypeNames.Application.Octet, fileName);

相关内容

  • 没有找到相关文章

最新更新