2012-02-25 76 views
1

我试图在C#中下载一个文件(包括pdf,zip,图像等)。 我已经尝试了以下链接中的代码。在C#中下载文件

http://www.daniweb.com/web-development/aspnet/threads/252778

http://dotnetslackers.com/Community/blogs/haissam/archive/2007/04/03/Downloading-Files-C_2300_.aspx

它的工作如预期在IE中。但在Firefox中,下载的zip和图像文件已损坏。

+2

损坏如何?预期与实际有什么区别?另外:在这种情况下,您并未尝试下载 - 您正在为客户端提供http响应,并提示客户端将其视为下载内容 - 与此截然不同。 – 2012-02-25 13:12:17

+1

你在服务器上做任何压缩,可能在'Gloabl.asax'中?如果是跳过它的下载请求。 – 2012-02-25 13:44:18

回答

1

问题可能与Content-Disposition标题中的FILENAME参数有关。

您可以按以下规则尝试示例代码:

  • 的文件名应该是US-ASCII字符集
  • 文件名不应该有任何目录路径信息指定
  • 文件名不应该用双引号括起来
  • 内容类型标题应指未知的MIME类型

    FileInfo fi = new FileInfo(@"c:\picture.bmp"); 
    Response.Clear(); 
    Response.ContentType = "application/x-unknown"; 
    Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", System.Web.HttpUtility.UrlPathEncode(fi.Name))); 
    Response.AddHeader("Content-Length", fi.Length.ToString()); 
    Response.TransmitFile(fi.FullName); 
    Response.End();