【问题标题】:Legitimate technique for avoiding file download blocker in IE ("To help protect your security")?在 IE 中避免文件下载阻止程序的合法技术(“帮助保护您的安全”)?
【发布时间】:2012-02-04 01:47:13
【问题描述】:

我的网络应用程序允许以多种格式导出数据。通过从下拉列表 (<select>) 中选择导出格式来触发导出,这会导致表单被 POST 并以请求的导出格式返回和下载文件。

这在除 IE 之外的所有浏览器上都可以正常工作 - 在 IE 上会出现“帮助保护您的安全”阻止程序,单击“单击此处获取选项”会导致页面重新加载,而不是允许实际下载。

简而言之,IE用户由于拦截器而无法下载文件以及随后的重新加载而不是下载。

我知道我们可以要求用户更改他们的安全区域设置以启用下载,但由于各种原因,这并不实际 - 有很多用户在很多不同的环境中,他们往往会忽略说明。

是否在某处记录了导致阻止程序出现的原因的规则?在 IE 中允许文件下载的合法推荐方式是什么?也就是说,对于下面详述的场景,我如何设置 HTML/表单以真正让用户下载文件?

  • 向用户显示文件格式列表
  • 用户选择文件后,将其下载到她的计算机上,而不会触发 IE 上的下载阻止程序

【问题讨论】:

    标签: html forms internet-explorer


    【解决方案1】:

    让您的 <select> 块简单地注入(使用 JavaScript)<a href="url_to_actual_format"> click here to download </a> 文本到 DOM 树的其他地方。然后,用户单击标准链接并重新加载整个页面,直接下载文件。

    您甚至可以让<a href="url?format=blah"> click </a> 引发 GET 请求..

    【讨论】:

    • 感谢 qdot,看来我可能必须检测 IE,而不是发布向用户显示直接链接以单击的表单。将尝试并更新。
    • 我看到网站用javascript替换了直接链接的选择器。看起来相当不错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 2012-02-07
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多