我的操作将文件从磁盘返回到客户端浏览器,目前我有:
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 http://forums.asp.net/t/1408527.aspx
就像魅力一样,正是我所需要的!
UPDATE
遇到这个问题如何在 ASP.NET Response 中传递大文件? https://stackoverflow.com/questions/9600856/how-to-deliver-big-files-in-asp-net-response事实证明它更简单,我现在是这样做的:
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)