Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ActiveX.exe文件下载_Php_Html_Activex_Download - Fatal编程技术网

Php ActiveX.exe文件下载

Php ActiveX.exe文件下载,php,html,activex,download,Php,Html,Activex,Download,我正在为我的一个项目开发Web安装程序,需要能够使用ActiveX下载.exe文件。我不希望有任何对话框提示用户对下载进行操作。用户批准ActiveX后,我希望将文件下载到正确的位置,例如C:\TEST 有什么想法吗 这就是我到目前为止所做的: 试验 正在下载所需文件。。。 函数IEsave(文件名,sData){ var-fso,a; fso=新的ActiveXObject(“Scripting.FileSystemObject”); file=fso.CreateTextFile(文件名,

我正在为我的一个项目开发Web安装程序,需要能够使用ActiveX下载.exe文件。我不希望有任何对话框提示用户对下载进行操作。用户批准ActiveX后,我希望将文件下载到正确的位置,例如C:\TEST

有什么想法吗

这就是我到目前为止所做的:


试验
正在下载所需文件。。。
函数IEsave(文件名,sData){
var-fso,a;
fso=新的ActiveXObject(“Scripting.FileSystemObject”);
file=fso.CreateTextFile(文件名,2,false);
file.write();
file.Close();
返回文件;
}
警报(iSave(“C:\\WebLock.exe”,”);
完成
唯一的问题是,它不会写入文件


以下是实际页面:


由于IE的保护模式功能,即使您自己编写插件,也无法将文件写入任何位置

我也遇到了同样的问题,我的解决方案是将文件写入低完整性位置,并调用shell的SHFileOperation来使用UAC对话框进行复制

但如果可能,您可以尝试将您的站点添加到所有用户的受信任列表中


这里有一个相关的问题:

您正在用户IE中的可信站点上执行此操作吗?您正在将exe文件内容写入HTML?o。O@Pekka,在大多数情况下。。对但它会提示用户允许或不允许ActiveX@时间机器,我以为我正在将.exe的内容写入文件。。。我不是吗?正如@Time Machine所说的——使用Ajax获取数据可能更好。另外,您在内容周围缺少引号,我认为您可以使用脚本中的PHP将其写入HTML。PHP是在浏览器获取HTML之前执行的,你知道。我做了这个工作,然后它就停止了。我已经尝试了我能想到的一切。我已经在IE8,IE9和Opera中测试过了,你是什么意思?您是否编写了自己的ActiveX或已将站点添加到受信任列表中?
<?php

$filename = "WebLock.exe";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

<html>
<head>

<title>Test</title>
</head>
<body>
<center><b>Downloading Required Files...</b></center>
<script>
function IEsave(filename, sData) {
    var fso, a;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    file = fso.CreateTextFile(filename, 2, false);
    file.write(<?php echo $contents ?>);
    file.Close();
    return file;
}

alert(IEsave("C:\\WebLock.exe", ""));

</script>
Complete!
</body>
</html>