제한된 파일에 대한 액세스 권한을 사용자에게 부여해야합니다. 이 작업을 위해 일반적인 웹 핸들러를 사용하고 있습니다.대용량 파일에도 메모리가 부족한 파일 다운로드
파일 크기가 1.5GB 이상일 수 있습니다.
가능한 한 적은 RAM/메모리 사용량으로이 파일을 제공해야합니다. 우리는 솔루션이보고있는 순간
:
request.ContentType = "text/plain";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
int buffersize = 65536;
byte[] buffer = new byte[buffersize];
using (StreamReader reader = new StreamReader(filename))
{
int count = 0;
while (true)
{
int count = reader.Read(buffer, 0, buffersize);
dataStream.Write(buffer, 0, count);
if (count < buffersize) break;
}
}
겠습니까 우리를 위해이 일?
더 좋은 해결책이 있습니까?
주의해야 할 사항은 무엇입니까?
IIS를 통해 파일을 직접 공유하는 것은 옵션이 아닙니다. 핸들러는 액세스 할 수있는 사용자와 액세스 할 수없는 사용자를 제어해야합니다.
StreamReader를 사용하지 마십시오. 그것은 텍스트 파일만을위한 것이며 여기서는 필요하지 않거나 원하지 않습니다. –