我在写一个HttpHandler
,它在GET请求上向客户端发送压缩文件。HttpHandler中的GZipStream:我做错了什么?
此代码工作得很好,将解压后的数据
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);
}
但是这个代码将破拉链文件。
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);
}
请告诉我我做错了什么?
很好的指出'* .gz'的扩展名是正确的。我认为'DeflateStream'是解决'.zip'文件的正确方法。 –
根据MSDN'DeflateStream'使用与'GZipStream'相同的算法,'ZipArchive'应该用于*'.zip' ... – ChrFin
有用的信息,我似乎误会了。谢谢! –