我想将大于800 mb的大文件发送到casansdra存储。但我得到了系统内存不足异常。
请找到以下代码:
HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;
Stream requestStream = request.GetRequestStream();
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = fileToUpload.File.Read(buffer, 0, buffer.Length)) >0)
{
requestStream.Write(buffer, 0, len);
requestStream.Flush();
}
return request.GetResponse() as HttpWebResponse;
请告诉我代码的哪一部分需要改进?
fileToUpload是来自UI的800 MB的精确流。
默认情况下,使用HttpRequest上传的文件的最大大小为4 MB(4096 KB)。如果你可以访问接收端的代码,你可以在web.config中增加它,尽管我从未对800MB以上的文件进行过测试:)请记住,Asp.Net会在180秒后暂停任何请求,这样实际上会限制你可以上传的文件的大小。
<httpRuntime
executionTimeout="110"
maxRequestLength="4096" />
在ASP.NET 2.0 中上载文件
IMHO您的最佳选择是使用HttpModule以块形式发送文件。这些可能会引起兴趣:
使用HttpHandler或HttpModule上传大文件?
用于文件上传、大文件、进度指示器的HttpHandler或HttpModule?
祝你好运:)