对于我正在开发的应用程序,我需要允许用户通过我们的网站上传非常大的文件——也就是说,可能有很多GB.不幸的是,ASP.NET MVC似乎在开始服务之前将整个请求加载到RAM中——这对于这样的应用程序来说并不理想.值得注意的是,试图通过以下代码规避该问题:
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.有没有一种简单的方法来解决这种行为?