0

当我使用以下代码下载 ZIP 文件时,它似乎可以工作。但是,当我尝试打开下载的 ZIP 时,我收到一条“无效的压缩文件夹”消息。当我在记事本中打开 ZIP 时,我看到它充满了 HTML。

string fp = Server.MapPath("directory\\file.zip");
FileInfo file = new FileInfo(fp);

if (file.Exists)
{
    Response.ClearContent();
    Response.AddHeader("content-disposition","attachment; filename=" + file.Name);
    Response.AddHeader("content-length", file.Length.ToString());
    Response.ContentType = "application/zip";
    Response.TransmitFile(file.FullName);
    Response.End();
}

我似乎无法解决的一个可能相关的问题是,当我尝试手动输入文件的地址 ( ) 时,即使以管理员身份登录http://website.com/downloads/file.zip,我也会收到重定向 ( )。http://website.com/login.aspx任何在哪里看的指针将不胜感激。

4

1 回答 1

1

而不是仅仅使用Response.ClearContent()也使用Response.ClearHeaders()来删除所有当前的标头以及响应的主体。

来自 MSDN,HttpResponse.ClearContent 方法

ClearContent 方法不清除标头信息。

于 2012-05-26T07:49:03.637 回答