【发布时间】:2012-04-18 06:42:36
【问题描述】:
我有一个大的 zip 文件(500MB 或更大),我正在读入 MemoryStream 并以 FileStreamResult 的形式返回。但是,对于超过 200MB 的文件,我得到了 OutOfMemory 异常。在我的操作中,我有以下代码:
MemoryStream outputStream = new MemoryStream();
using (var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read))
{
//Response.BufferOutput = false; // to prevent buffering
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
{
outputStream.Write(buffer, 0, bytesRead);
}
}
outputStream.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(outputStream, content_type);
【问题讨论】:
-
我不想使用 ReadAllBytes,因为有 2GB 的限制,也因为一次将整个文件读入内存时的内存问题。
标签: c# asp.net memorystream chunking filestreamresult