当我从 MVC 操作方法返回 FilePathResult 时,会发生以下哪种情况(假设结果指向的文件非常大):
- 文件被完整地加载到服务器的内存中,然后发送到客户端。
- 该文件以某种方式传输到客户端,其方式在任何时候都不会完全加载到服务器的内存中。
- 还有别的事。
如果答案为 1,是否可以像 2 中那样发送文件,而不是返回不同类型的结果?
UPDATE: FilePathResult
uses 响应.传输文件 http://msdn.microsoft.com/en-us/library/12s31dhy.aspx其中“将指定文件直接写入 HTTP 响应输出流,而不将其缓冲在内存中。”。这是MVC的源代码 http://aspnet.codeplex.com/releases.
您可以使用流式传输数据FileStreamResult
class:
return new FileStreamResult(stream, "application/pdf")
{
result.FileDownloadName = "somefile.pdf";
};
或者您可以像这样重定向到该文件:
return Redirect("somefile.pdf");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)