In my c# code I am trying to create a zip folder for the user to download in the browser. So the idea here is that the user clicks on the download button and he gets a zip folder.
For testing purpose I am using a single file and zipping it but when it works I will have multiple files.
Here is my code
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);
}
}
When I try this thing it gives me this error
Central Directory corrupt.
[System.IO.IOException] = {"An attempt was made to move the position before the beginning of the stream."}
Exception occurs at
using (ZipArchive zip = new ZipArchive(ms))
Any thoughts?