У меня есть сайт, где пользователь может скачать файл. Некоторые файлы имеют очень большой размер (самый большой - 323 МБ). Когда я тестирую его, чтобы попытаться загрузить этот файл, я получаю исключение нехватки памяти. Единственный известный мне способ загрузки файла - ниже. Причина, по которой я использую приведенный ниже код, заключается в том, что URL-адрес закодирован, и я не могу позволить пользователю связываться напрямую с файлом. Есть ли другой способ загрузить этот файл, не считывая все это в байтовом массиве?
FileStream fs = new FileStream(context.Server.MapPath(url), FileMode.Open,
FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(context.Server.MapPath(url)).Length;
byte[] bytes = br.ReadBytes((int) numBytes);
string filename = Path.GetFileName(url);
context.Response.Buffer = true;
context.Response.Charset = "";
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.ContentType = "application/x-rar-compressed";
context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
context.Response.BinaryWrite(bytes);
context.Response.Flush();
context.Response.End();