我正在使用ZipArchive和处理程序,在内存流和Web处理程序中为用户提供服务。在本地,这是工作的,直到我将应用程序上传到实时站点。
以下是我的代码。
using (ZipArchive newArchive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
newArchive.CreateEntryFromFile(fileName, Path.GetFileName(fileName));
if (File.Exists(acRefFile))
{
newArchive.CreateEntryFromFile(acRefFile,
newACRefName + Path.GetExtension(acRefFile));
}
else
{
SystemLogManager sysLogMgr = new SystemLogManager();
sysLogMgr.AddErrorMessage(acRefFile, "File not found");
}
if (File.Exists(exRefFile))
{
newArchive.CreateEntryFromFile(exRefFile,
newExRefName + Path.GetExtension(exRefFile));
}
else
{
SystemLogManager sysLogMgr = new SystemLogManager();
sysLogMgr.AddErrorMessage(exRefFile, "File Not Found");
}
if (File.Exists(exRef2File))
{
newArchive.CreateEntryFromFile(exRef2File,
newExRef2Name + Path.GetExtension(exRef2File));
}
}
memoryStream.Position = 0;
byte[] bytes = memoryStream.GetBuffer();
context.Response.Buffer = true;
context.Response.Clear();
context.Response.ContentType = "application/zip";
context.Response.AddHeader("content-disposition",
string.Format("attachment; filename =app_{0}_{1}.zip", appForm.Cand_sno,
appForm.App_year));
context.Response.BinaryWrite(bytes.ToArray());
context.Response.Flush();
以下图片显示了下载的zip文件和生成的错误。
![Zip error](https://istack.dev59.com/JdOHy.webp)
更新1: 根据收到的评论,我尝试直接将zip文件添加到服务器上。出现与zip“损坏”相同的问题。
更新2: 进一步调查后,我现在发现使用7zip时可以打开zip文件,但是使用标准的Windows解压缩时无法打开。当右键提取全部时,消息显示zip为空。
谢谢