在C#中下载文件

时间:2012-02-25 12:49:29

标签: c# asp.net download

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

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和图像文件已损坏。

1 个答案:

答案 0 :(得分:1)

问题可能出在Content-Disposition标头中的FILENAME参数。

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

  • 文件名应为US-ASCII字符集
  • 文件名不应指定任何目录路径信息
  • 文件名不应用双引号括起来
  • Content-Type标头应引用未知的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();