下载c#.net中的.zip文件

时间:2017-10-18 18:36:47

标签: c# .net download zip

我正在尝试从我的.net C#应用程序下载.zip文件。没有成功。我的代码如下。文件路径和名称完全有效,似乎没有任何下载。请注意我如何将“application / x-zip-compressed”和“application / zip”作为内容类型(一个注释掉,尝试过两者)。两者都不起作用。没有任何错误的迹象,只是没有下载。

我发誓这段代码在几周前就已经开始工作了,这个问题突然爆发,“保存为”选项正在发布,现在无论出于何种原因都没有发生。

任何人看到任何错误,或者我的问题是否存在于代码之外的其他地方?

FileInfo file = new FileInfo(filepath);

Response.Clear();

Response.AddHeader("Content-Disposition", "attachment; filename=" +   file.Name);

Response.AddHeader("Content-Length", file.Length.ToString());

//Response.ContentType = "application/x-zip-compressed";
Response.ContentType = "application/zip";
Response.WriteFile(file.FullName);

1 个答案:

答案 0 :(得分:0)

我猜你在FileNotFoundException获得Response.AddHeader("Content-Length", file.Length.ToString());

要解决此问题,您必须使用Server.MapPath(...)将应用程序的根目录添加到filename。 此外,您应该Flush()End() Response正确地force the client接收它。

string filename = "myfile.zip";
string serverpath = Server.MapPath($"~/{filename}");
FileInfo file = new FileInfo(serverpath);
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/zip";
Response.WriteFile(file.FullName);
Response.Flush();
Response.End();