代码:/*...*/
if (!File.Exists(Server.MapPath(path)))
{
this.Response.Write("文件不存在");
return;
}
path = Server.MapPath(path);long ImageSize;
Byte[] ImageBuffer;
//System.IO.File f;//设置文件大小
FileInfo fi = new FileInfo(path);
ImageSize = fi.Length;//创建一文件流对象
FileStream fs = new FileStream(path,FileMode.Open);//基于文件流创建二进制读
BinaryReader r = new BinaryReader(fs);
r.BaseStream.Seek(0, SeekOrigin.Begin);
ImageBuffer = r.ReadBytes(Convert.ToInt32(ImageSize));Response.Clear();
Response.BufferOutput = false;
Response.ContentType = "Application/ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + name + "\"");
Response.AddHeader("Content-Length", ImageBuffer.Length.ToString());
Response.BinaryWrite(ImageBuffer);
r.Close();
fs.Close();
Response.End();这个页面是在一个弹出窗口中的,页面是弹出了不过在IE7下这个页面弹出后,没有出现“下载”的对话框,而是被关掉了。
IE6没有这个问题

解决方案 »

  1.   

    只要启用IE安全设置里面的该项即可正常下载:IE选项->安全->自定义级别->基于文件内容打开文件,而不是基于文件扩展名启用后,重启IE,下载就正常了。
      

  2.   

    很可能是IE7.0新增的某些安全特性阻止了报表的下载。经过Internet选项的对比,发现问题出在IE7.0文件下载的自动下载提示上。出于安全考虑,微软默认阻止了此项功能(包括安全域,但Intranet域没有的)。在安全域允许此项功能后(应用的URL被添加到了安全域),导出就正常了
      

  3.   

    IE7的设置问题
    多试下LS的方法
      

  4.   

    楼主,还是不会你就看看这个吧,我一会有会,就不多关注了
    http://www.bitscn.com/windows/systembase/200604/5339.html