1

我有以下情况(简化):

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

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

IE 似乎真的启动了第一次下载,但在收到标题时中止了它。所以我想我没有机会判断浏览器是否中止了下载。

有人对此有解决方案吗?(我不想要下载按钮)。

4

3 回答 3

0

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

于 2010-11-19T08:31:14.130 回答
0

您是否在下载链接中“定位”了 iframe?

你为什么不瞄准=“父母”?如果没有 html 和更改的 mime 标头(我假设八位字节流或强制下载),您的页面将不会被覆盖并且您的下载将成功。

于 2010-11-19T08:34:24.837 回答
0

在对此发疯之后(感谢您的回复,但他们都没有解决问题 - IE 在下载请求上设置 Cookie,但之后阻止下载),我倾向于认为解决这个问题的唯一方法是提供一个下载页面,用户可以在其中主动点击下载链接(或至少某种下载覆盖)。

于 2010-12-01T10:27:24.770 回答