我正在为我的一个项目开发Web安装程序,并且需要能够使用ActiveX下载.exe文件。我不希望任何对话框提示用户对下载做了些什么。在用户批准ActiveX之后,我希望将文件下载到适当的位置,例如C:\ TEST。
有什么想法吗?
这是我到目前为止所做的:
<?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>
唯一的问题是,它不会写文件。
以下是实际页面:
答案 0 :(得分:0)
由于IE的保护模式功能,即使您编写自己的插件,也无法将文件写入任何位置。
我遇到了同样的问题,我的解决方案是将文件写入低完整性位置并调用shell的SHFileOperation以使用UAC对话框进行复制。
但如果可能,您可以尝试将您的网站添加到所有用户的受信任列表中。
以下是相关问题:IE Protected Mode Problem?!