【发布时间】:2010-09-30 00:15:35
【问题描述】:
以下代码在安装了最新服务包的 IE7 中无法正常运行。
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", "attachment;filename=Contacts.xls");
response.ContentType = "application/octet-stream";
System.Text.UnicodeEncoding Encoding = new System.Text.UnicodeEncoding();
byte[] unicodeBytes = {255,254};
int length = 2 + Encoding.GetByteCount(_exportContent); // _exportContent is string.
response.AddHeader("Content-Length", length.ToString());
response.OutputStream.Write(unicodeBytes, 0, 2);
unicodeBytes = Encoding.GetBytes(_exportContent);
response.OutputStream.Write(unicodeBytes, 2, unicodeBytes.Length);
response.End();
我用js(window.open())打开aspx页面,在Page_Load()中执行上面的代码。
奇怪的是窗口弹出,尝试加载/显示文件对话框,然后你听到弹出窗口被阻止的声音(尽管弹出窗口阻止程序已停用!)。
额外信息:
- 该行为发生在 XP 和 W2k3 上(这是一个真正的 Web 服务器,除了 IE7 和 FW 3.5 SP1 和最新的服务包之外没有安装任何其他东西。)
- 相同的代码适用于 FW 2.0
- Firefox 显示文件对话框没有问题。
我会很好奇是否有其他人遇到过同样的问题,并且可以提供一个解决方案来让这个东西在 IE7 中运行。
干杯,
迪米
【问题讨论】:
标签: c# asp.net .net-3.5 internet-explorer-7 filedialog