代码之家  ›  专栏  ›  技术社区  ›  acme

自动下载和IE安全警告的问题

  •  1
  • acme  · 技术社区  · 15 年前

    我有以下情况(简化):

    我有一个脚本文件.php?file=foo.pdf,它在文档根目录之外传递文件(它没有html,只是下载推送脚本)。有些文件受脚本保护—在这种情况下,用户被重定向到login.php。成功登录后,将使用用户要下载的文件设置会话变量。用户被重定向到home.php,在这里我用下载的源文件创建一个iframe.php?文件=foo.pdf。当script file.php开始推送下载时,它会取消设置会话变量。

    这在Firefox中有效,但在IE中,这会给我一个安全警告,下载会被阻止。如果我点击栏并允许下载IE重新加载页面。但由于会话已被取消设置,因此不会生成iframe,因此不会“再次”下载文件。

    IE似乎真的启动了第一次下载,但在接收头文件时中止了下载。所以我想我没有机会知道下载是否被浏览器中止了。

    有人能解决这个问题吗?(我不想要下载按钮)。

    3 回复  |  直到 15 年前
        1
  •  0
  •   TomaszSobczak    15 年前

    我可能是错的,但是在将文件发送到iframe之后,您是否试图取消设置会话变量?在这种情况下,当IE安全检查将保持时,下载变量仍可能存在于下一个请求中。

        2
  •  0
  •   Oliver M Grech    15 年前

    你在下载链接中“瞄准”一个iframe吗?

    为什么不target=“parent”?如果没有html和更改的mime头(我假设是八进制流或force download),您的页面将不会被覆盖,您的下载将成功。

        3
  •  0
  •   acme    15 年前

    在疯了之后(感谢你的回复,但没有一个解决了这个问题——即在下载请求上设置Cookies,但在下载之后阻止了下载),我倾向于认为处理这个问题的唯一方法是提供一个下载页面,用户可以在其中主动点击下载链接(或者至少某种下载覆盖)。

    推荐文章