我使用ICSharpCode.SharpZipLib.Zip压缩文件和文件夹,并使用response.Binary write将其作为内存流传递。
下面是我的代码:
MemoryStream df= new MemoryStream();
ZipOutputStream s = new ZipOutputStream(df);
s.SetLevel(9);
byte[] data = (byte[])file.OpenBinary();
s.Write(data, 0, data.Length);
s.Finish();
s.Close();
byte[] outBuf = df.GetBuffer();
Response.Expires = 0;
Response.Buffer = true;
Response.ClearContent();
Response.AddHeader("content-disposition", "inline; filename="out.zip");
Response.ContentType = "application/zip";
Response.BinaryWrite(outBuf);
HttpContext.Current.ApplicationInstance.CompleteRequest();当我尝试打开out.zip文件时,它显示压缩文件已损坏或损坏,CRC值显示为000000。
这个问题的解决方案是什么?为什么会发生这个错误?
发布于 2011-03-28 23:30:48
我猜,你应该打电话给我:
s.Flush();
df.Flush();就在调用df.GetBuffer()之前
发布于 2011-03-28 23:31:33
尝试在关闭前显式刷新流“%s”。
https://stackoverflow.com/questions/5461207
复制相似问题