Загрузить zip-файл на большой (400 МБ) в MVC - PullRequest
0 голосов
/ 27 апреля 2019

Следующий код хорошо работает с небольшими файлами, такими как 100 МБ, но он выдает System.OutOfMemoryException для больших файлов, таких как 400 МБ.Я использую NotNetZip как dll, чтобы получить файл в формате zip.

Это мой код:

string pathGetDoc = pathDocs + "\\" + informe.NickName + "\\" + getMesActual() + "\\" + informe.Name;

string fileName = informe.Name;

System.Net.WebClient wc = new System.Net.WebClient();
wc.OpenRead(pathGetDoc);
int bytes_total = Convert.ToInt32(wc.ResponseHeaders["Content-Length"].ToString());

if(bytes_total >= 100000000)
{
    using (ZipFile zip = new ZipFile())
    {
        zip.AddFile(pathGetDoc, fileName);
        zip.CompressionMethod = CompressionMethod.BZip2;
        zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
        using (MemoryStream memoryStream = new MemoryStream())
        {
            zip.Save(memoryStream);
            return File(memoryStream.ToArray(), "application/zip", "z.zip");
        }
    }
}

Как вы можете видеть, у меня есть IF, чтобы проверить размер файла, это работает хорошо, но когда процесс идет, чтобы сохранить файл .zip, у меня появляется ошибка System.OutOfMemoryException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...