PHP头文件在Internet Explorer 11上强制下载赢得';不要跳过弹出窗口

PHP头文件在Internet Explorer 11上强制下载赢得';不要跳过弹出窗口,php,windows-10,internet-explorer-11,Php,Windows 10,Internet Explorer 11,我有这些PHP标题,可以强制下载(内部网站),在Chrome上运行,而不提示弹出窗口,但我无法避免在Windows 10上的Internet Explorer 11(版本11.657.18362.0)中出现弹出警告 我已经尝试在IE“intranet”站点和“internet”站点中添加运行此操作的内部服务器地址(),将安全级别降低到“intranet”和“internet”下此区域的最低设置。关闭并打开Internet Explorer,它仍然会弹出警告 下面是我的PHP代码: if ($_R

我有这些PHP标题,可以强制下载(内部网站),在Chrome上运行,而不提示弹出窗口,但我无法避免在Windows 10上的Internet Explorer 11(版本11.657.18362.0)中出现弹出警告

我已经尝试在IE“intranet”站点和“internet”站点中添加运行此操作的内部服务器地址(),将安全级别降低到“intranet”和“internet”下此区域的最低设置。关闭并打开Internet Explorer,它仍然会弹出警告

下面是我的PHP代码:

if ($_REQUEST['c']){
    $num = $_REQUEST['c'];
    $cmd = "test.exe $num";
    $ctype ="application/octet-stream";
    ob_end_clean();
    header('Content-Description: File Transfer');
    header('Content-Type:' . $ctype);
    header('Content-Disposition: attachment; filename="test.bat"');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: no-cache, must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . strlen($cmd));
    echo($cmd);
    exit;
}
此外,下载bat文件后,用户计算机上会有一个单独的AutoIt脚本,该脚本将扫描下载文件夹中的该特定文件,并将自动运行该文件并将其删除,而用户无需执行任何操作。这样做的目的是将用户的点击次数限制为一次

这是当我点击下载下面的bat文件时,从IE获得的弹出窗口:


有什么不对的地方或其他建议吗?

我可以重现这个问题,但出于安全原因,IE浏览器在下载bat文件时似乎会一直显示此提示,我们无法禁用它

作为一种解决方法,我建议您可以将bat文件转换为ZIP文件,然后下载它。以下是一些有关如何使用JavaScript压缩文件的相关线程,您可以查看它们:


$ctype是否发生变化?根据你的代码,那部分应该是硬编码的。我想知道你是否需要在\“test.bat\”@Mech当前没有$ctype没有改变,但是我们以后可能会这样做,所以现在把它作为一个变量。我将尝试将反斜杠添加到文件名中。@Mech添加黑色斜杠不起作用,很不幸,这可能是一个指导?