I'm writing a HttpHandler
, which sends zipped file to the client on GET requests.
This code works well and sends unzipped data
using (var mem = new MemoryStream())
{
WriteMyDataToStream(mem);
context.Response.AddHeader("Content-Type", "application/octet-stream");
context.Response.AddHeader("Content-Disposition","attachment; filename=file.csv");
mem.WriteTo(context.Response.OutputStream);
}
but this code sends broken zip-files.
using (var mem = new MemoryStream())
{
var str = new GZipStream(mem, CompressionMode.Compress);
WriteMyDataToStream(str);
context.Response.AddHeader("Content-Type", "application/octet-stream");
context.Response.AddHeader("Content-Disposition","attachment; filename=file.zip");
mem.WriteTo(context.Response.OutputStream);
}
Please, tell me what am I doing wrong?