对于应用程序我的工作,我需要让用户上传非常大的文件 - 即,许多潜在的千兆字节 - 通过我们的网站。不幸的是,ASP.NET MVC似乎在开始提供服务之前将整个请求加载到RAM中 - 这对于这样的应用程序来说并不完美。值得注意的是,试图绕过通过代码的问题,如下列:流大文件上传到ASP.NET MVC
if (request.Method == "POST")
{
request.ContentLength = clientRequest.InputStream.Length;
var rgbBody = new byte[32768];
using (var requestStream = request.GetRequestStream())
{
int cbRead;
while ((cbRead = clientRequest.InputStream.Read(rgbBody, 0, rgbBody.Length)) > 0)
{
fileStream.Write(rgbBody, 0, cbRead);
}
}
}
无法规避缓冲区的请求,到-RAM的心态。有没有简单的方法来解决这个问题?
哪里你的代码驻留在你的应用程序?控制器?处理程序?模块? – 2012-12-20 16:02:32
我知道这个问题是旧的,但它是我使用的是作为一个项目,我工作的一个参考一个很好的问题。快速的问题 - 什么是“cb”应该表示在你的变量cbRead中? – KSwift87 2012-12-21 22:43:00
@ KSwift87`cb`代表“字节计数”,这是在雾溪标准应用匈牙利命名法。 – 2012-12-23 21:41:42