如何在asp.net中向请求流发送一个大文件



我想将大于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?

祝你好运:)

相关内容

最新更新