有一个桌面浏览器叫做“ 360安全浏览器”。他们在中国占有相当大的市场份额,我们需要支持他们。
它说布局引擎是 Trident (IE),这是我所期望的,但我现在无法验证(在 Mac 上!)。
这样做的原因是我有一些表单可以启动下载,将字节流式传输到客户端,并且它们可以在其他主要浏览器中使用。导致问题的代码如下或类似。这是在做我没有注意到的错误吗?字节流通常在 50-100KB 左右,我们还没有遇到过问题。
- 调用此代码以响应 PostBack 事件(例如,在网格中单击按钮等)
- 使用来自文件、在内存中生成或从 db 读取的字节流调用此函数。
功能:
public static bool DownloadStream(byte[] packageStream, string fileName) {
var response = HttpContext.Current.Response;
response.Clear();
response.AddHeader("Accept-Ranges", "bytes");
response.AddHeader("Content-Disposition", "inline; filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));
response.AddHeader("Content-Length", packageStream.Length.ToString());
response.ContentType = "application/xlsx";
response.BinaryWrite(packageStream);
response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
return true;
}
有没有人有支持这个浏览器的经验?在谷歌上用英文搜索时,我找不到任何关于它的信息。没有规格,没有文档,什么都没有。我得去百度找资料,看不懂那种程度的中文!
编辑:
问题显然在于 360 使用的下载器。不过,我想知道流代码中是否应该更改某些内容。我缺少的标题或其他内容。
- 这只发生在小文件上。相同的页面,更大的下载 = 没有问题。
- 更改为内置 IE 下载器会导致问题消失。