【发布时间】:2019-12-12 15:34:31
【问题描述】:
我有一个压缩文件,当使用 C# 代码从服务器下载它时,它在提取时显示无效,我尝试直接从服务器提取文件并且它正在工作。
所以,这里的文件似乎只是在下载过程中损坏了。几天前它工作正常,但现在出现问题。
您能否检查我的代码并告诉这里可能是什么问题,相同的代码在我的本地开发环境中可以正常工作。
已经试过了,
1.尝试直接在服务器中提取文件并且它有效,所以问题一定是我的下载代码。
2.相同的下载代码正常工作。
注意:文件已经在服务器中压缩,下面的代码只是下载压缩文件,压缩是好的,因为文件正在服务器中打开
protected void linkbtntempdownload_Click(object sender,EventArgs e)
{
string downloadlocation = string.Empty;
if(ConfigurationManager.AppSettings["Environment"] == "prod")
{
downloadlocation = ConfigurationManager.AppSettings["Templates"].ToString();
}else
{
downloadlocation = Server.MapPath("~/TemplateFolder/Templates.zip");
}
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "attachment; filename=" + "_Templates.Zip");
Response.WriteFile(downloadlocation);
Response.Flush();
Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
【问题讨论】:
-
下载后的文件大小是多少?您是否使用记事本等文本查看器查看了 zip 文件内容,以确保您没有下载登录页面响应或其他内容?
-
尝试添加标题,如示例:stackoverflow.com/a/2186153/9350365
-
Hi Jhileman,下载的文件大小是一样的,我已经验证过了。
-
嗨,T.Czubaszek,上面的代码已经有标题,但问题仍然存在,一个想法是这可能是与服务器相关的问题,因为问题仅与压缩文件或是不是和代码有关。
-
如果文件大小相同,那么您必须使用不同的实用程序解压缩文件,以便使用一个实用程序而不是另一个实用程序解压缩。当您比较文件的大小时,请确保大小完全相同的字节数。