В моем коде С# я пытаюсь создать zip-папку, которую пользователь может загрузить в браузере. Итак, идея здесь в том, что пользователь нажимает кнопку загрузки и получает zip-папку.
В целях тестирования я использую один файл и архивирую его, но когда это сработает, у меня будет несколько файлов.
Вот мой код
var outPutDirectory = AppDomain.CurrentDomain.BaseDirectory;
string logoimage = Path.Combine(outPutDirectory, "images\\error.png"); // I get the file to be zipped
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.BufferOutput = false;
HttpContext.Current.Response.ContentType = "application/zip";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=pauls_chapel_audio.zip");
using (MemoryStream ms = new MemoryStream())
{
// create new ZIP archive within prepared MemoryStream
using (ZipArchive zip = new ZipArchive(ms))
{
zip.CreateEntry(logoimage);
// add some files to ZIP archive
ms.WriteTo(HttpContext.Current.Response.OutputStream);
}
}
Когда я пытаюсь это сделать, это дает мне эту ошибку
Центральный каталог поврежден.
[System.IO.IOException] = {Была предпринята попытка переместить позицию перед началом потока.}
Исключение возникает в
используя (ZipArchive zip = новый ZipArchive (мс))
Есть предположения?