写了个压缩下载,奇葩的是chrome、Firefox和IE可正常下载,包了一层皮的国产浏览器就乱码?测试过360安全、360极速、QQ
代码如下:
public void ZipFileDownload(string[] files, string zipFileName)
{
MemoryStream ms = new MemoryStream();
byte[] buffer = null;
using (ZipFile file = ZipFile.Create(ms))
{
file.BeginUpdate();
file.NameTransform = new MyNameTransfom();
foreach (var item in files)
{
if (File.Exists(System.Web.HttpContext.Current.Server.MapPath(item)))
file.Add(System.Web.HttpContext.Current.Server.MapPath(item));
}
file.CommitUpdate();
buffer = new byte[ms.Length];
ms.Position = 0;
ms.Read(buffer, 0, buffer.Length); //读取文件内容(1次读ms.Length/1024M)
ms.Flush();
ms.Close();
}
//DeleteFiles(files);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearContent();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed";
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(zipFileName, System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.BinaryWrite(buffer);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
360安全浏览器中响应头是这个样的
求解