我正在使用ZipArchive和一個處理程序來向使用內存流和Web處理程序的用戶提供服務。本地這是工作,直到我上傳應用程序到現場。ZipArchive在實時服務器上提供無效文件
這是我的代碼。
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();
那麼有什麼代碼可能是錯誤的或我可以嘗試服務器端?
更新1: 根據收到的評論,我嘗試將zip文件直接添加到服務器上。同樣的問題發生在zip被「損壞」。
更新2: 進一步的調查我現在發現,使用7zip但不是標準的Windows提取時,zip文件打開。當右鍵單擊提取所有消息狀態時,zip爲空。
謝謝
您的開發機器和服務器是基於Windows的機器嗎?你有沒有檢查服務器事件/應用程序日誌? –
開發和服務器都是基於windows的,同時運行.net的正確版本。我查看了應用程序日誌,注意到它是一個可能的原因。 – Dashwall
每次都是「損壞」還是10次是9次? –