string path = Server.MapPath(this.xlfile.Text+".xls"); System.IO.FileInfo file = new System.IO.FileInfo(path);
Response.Clear();
Response.Charset="GB2312";
Response.ContentEncoding=System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", file.Length.ToString());

// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";

// 把文件流发送到客户端
Response.WriteFile(file.FullName);
// 停止页面的执行

Response.End();用上面方法
为什么出现下载提示后 点保存 又出现了另一个下载提示 说下载这个页面 例如我的页面
叫1.aspx 它提示说下载1.aspx.htm
谢谢了

解决方案 »

  1.   

    尝试以下做法   用2进制流下载
                               Response.Clear();
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(fn));
    FileStream fs = File.OpenRead(serverF);
    byte [] bytes = new Byte[fs.Length];
    fs.Read(bytes,0,(int)fs.Length);
    fs.Close(); Response.BinaryWrite(bytes);
    Response.End();
    我使用了很多 没有问题
      

  2.   

    是不是你的IE设置的问题,在文件夹选项-文件类型里改一下,对xls文件设置直接打开
      

  3.   

    http://community.csdn.net/Expert/topic/3332/3332144.xml?temp=.7997248
      

  4.   

    Response.ContentType = "Application/octet-stream"
            Response.Clear()
            Response.AddHeader("Content-Disposition", " filename=" + Session("sFileName"))
                    Response.BinaryWrite(Session("Buffer"))
            Response.End()