gpt4 book ai didi

php - 是什么导致 IE8 阻止某些文件下载?

转载 作者:可可西里 更新时间:2023-11-01 12:17:28 27 4
gpt4 key购买 nike

这在我的 IE8 用户中引起了一些悲伤。

在我的网站上,我通过 php 脚本 (file_download.php?file=X123) 启动了文件下载。在此页面中,它将一些数据记录到数据库中,然后使用 header 强制下载。此页面上的所有内容似乎在所有浏览器上都能正常工作。

我是这样称呼这个页面的,它似乎给我带来了烦人的小提示“为了帮助保护您的安全 - Internet Explorer 已阻止网站将文件下载到您的计算机”。

如果我使用常规的 href 标签 <a href="/file_download.php?file=X123">download</a>它正确启动(没有 IE 阻止下载消息)。

但是当我使用 jQuery 脚本启动时,它会给我这个警告。

所以我想IE8可能会怀疑javascript重定向,所以我在本地页面上做了一个简单的JS函数,但是没有问题。

看来 jQuery 可能是罪魁祸首...是因为 window.location 事件是从另一个页面或脚本源调用的吗?有谁知道这是如何工作的?

我会继续测试,但就目前而言,有人可以阐明这个问题吗?要求用户调整他们的 IE 设置不是一种选择。

谢谢

-------- jQuery 代码----------------

            jQuery("a").click(function(e){

if(jQuery(this).attr("href") !== undefined){

downloadLink = jQuery(this).attr("href");
thingClicked = jQuery(this);

dll_io = downloadLink.indexOf("/file_download.php?file_id=");
dll_io2 = downloadLink.indexOf("/file_download_safe.php?file_id=");


if(dll_io == 0 || dll_io2 == 0){

e.preventDefault();

jQuery.getScript("/includes/get_login.php?file_id=" + downloadLink + "&dll_io=" + dll_io + "&dll_io2=" + dll_io2 + "&last_url=" + document.URL, function(rp){
//get_login.php sets 'requested_dl_id' cookie

if(dll_io2 == 0){
window.location = downloadLink;
}else{
if(rp == "allow"){
window.location = downloadLink;
}else{
jQuery("#download_prompt").click();
}
}//end condition: if file_download_safe -> set cookie and send to page. IF file_download -> set cookie and decide to prompt or not.

});
}//end if fd == file_download.php
}//end only execute code if 'a' has a defined 'href' attribute

});

----更新----

我现在已经充分了解了这个问题的原因 - 但没有简单的解决方案。原因是 IE7 和 8 会自动阻止从非用户事件启动的下载。因此,onclick 事件将启动下载,但不会启动 jQuery 脚本。仍在寻找解决方法。

最佳答案

使用 JavaScript 触发下载是传播恶意软件的一种常见方式(例如:横幅广告可能会在所有显示该广告的网站上触发下载)。

它会触发“危险信号”并增加安全预防措施,这并不让我感到惊讶。

我认为您唯一的选择是不使用 javascript 来触发下载。还有其他方法吗?

关于php - 是什么导致 IE8 阻止某些文件下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9917973/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com