पर बफर किया गया है मैं एक नियंत्रक ActionResult के माध्यम से बड़ी फ़ाइलों को वापस करने की कोशिश कर रहा हूं और निम्नलिखित की तरह एक कस्टम FileResult क्लास लागू किया है।फ़ाइल रीसेट मेमोरी
public class StreamedFileResult : FileResult
{
private string _FilePath;
public StreamedFileResult(string filePath, string contentType)
: base(contentType)
{
_FilePath = filePath;
}
protected override void WriteFile(System.Web.HttpResponseBase response)
{
using (FileStream fs = new FileStream(_FilePath, FileMode.Open, FileAccess.Read))
{
int bufferLength = 65536;
byte[] buffer = new byte[bufferLength];
int bytesRead = 0;
while (true)
{
bytesRead = fs.Read(buffer, 0, bufferLength);
if (bytesRead == 0)
{
break;
}
response.OutputStream.Write(buffer, 0, bytesRead);
}
}
}
}
हालांकि समस्या मैं कर रहा हूँ पूरी फ़ाइल स्मृति में बफ़र प्रतीत होता है। इसे रोकने के लिए मुझे क्या करने की ज़रूरत होगी?
आप मौजूदा FileStreamResult का उपयोग क्यों नहीं करते? –
मैंने शुरुआत में FileStreamResult का उपयोग करने का प्रयास किया लेकिन यह फ़ाइल को स्मृति में भी बफर करता है। –