【问题标题】:Zip file is corrupted when downloaded from server C#从服务器 C# 下载 Zip 文件时已损坏
【发布时间】: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,上面的代码已经有标题,但问题仍然存在,一个想法是这可能是与服务器相关的问题,因为问题仅与压缩文件或是不是和代码有关。
  • 如果文件大小相同,那么您必须使用不同的实用程序解压缩文件,以便使用一个实用程序而不是另一个实用程序解压缩。当您比较文件的大小时,请确保大小完全相同的字节数。

标签: c# server zip


【解决方案1】:

您好终于可以解决问题了。原因是 zip 文件已损坏。

当使用记事本打开 zip 文件时,它应该以 P 开头。但是当打开我们的文件时,我们发现文件中附加了一个额外的字符串。我们能够发现 Respose.write("string") 存在于我们的服务器代码中,该代码作为附加字符串附加到 zip 文件中。删除后文件正常打开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多