Моего кода:OutOfMemory при загрузке файлов
int chunk = Request["chunk"] != null ? int.Parse(Request["chunk"]) : 0;
string fileName = Request["name"] != null ? Request["name"] : string.Empty;
Response.Write(Request.Files.Count);
HttpPostedFile fileUpload = Request.Files[0];
var uploadPath = Server.MapPath("~/uploaded-files");
if (Request.QueryString["originals"] == "yes")
{
using (var fs = new FileStream(Path.Combine(uploadPath, fileName), chunk == 0 ? FileMode.Create : FileMode.Append))
{
var buffer = new byte[fileUpload.InputStream.Length];
fileUpload.InputStream.Read(buffer, 0, buffer.Length);
fs.Write(buffer, 0, buffer.Length);
}
}
Я получаю сообщение об ошибке 'System.OutOfMemoryException'.
Моя машина имеет 4 гигабайта оперативной памяти. Этот файл составляет приблизительно 1 ГБ. Я использую plUpload для загрузки.
Я включил переключатель 3GB. Нет разницы. У меня много оперативной памяти, почему у меня заканчивается память? Существует ли альтернативный подход, который использует меньше памяти?
Чтение и запись его на куски, а не все сразу? –
Попробуйте выполнить компиляцию для целевой платформы x64. – Igor
Вы перепутали свои настройки httpRuntime в config? HttpPostedFile должен буферизовать на диск, если он превышает 256 КБ, если вы не увеличили requestLengthDiskThreshold. –