IE下,纯js掉用系统activex实现文件下载。

来源:互联网 发布:ghost后数据恢复 编辑:程序博客网 时间:2024/06/05 11:29
原本用vb写一个下载文件的组件。发现用的两个系统activex也许可以使用js来调用。
尝试之。可以实现。
 
如果出现 automation服务器不能创建对象,你需要检查:
1、修改IE安全设置,启用activex或降低安全级别。
2、开始 运行 regsvr32 scrrun.dll
如果还是这样:
3、开始 运行 regedit进入注册表
将HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/ActiveX Compatibility/{00000566-0000-0010-8000-00AA006D2EA4} 
下的键值由400(禁用)改为0
 
var xmlhttp; if (window.ActiveXObject) {                var Versions = [ "MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];                for (var i = 0; i < Versions.length; i++) {                try {                        xmlhttp = new ActiveXObject(Versions[i]);                }                catch (e) {}                }    } //XMLHTTP = CreateObject("Microsoft.XMLHTTP")  xmlhttp.open("GET", "http://localhost:8080/naf/xls/5w.zip", false);//此处为要下载的文件网络url  xmlhttp.send();  var Contents = xmlhttp.responseBody;  var oStr =  new ActiveXObject("ADODB.Stream");   oStr.Mode = 3;  oStr.Type = 1;  oStr.Open();  oStr.Write(Contents);  oStr.SaveToFile("c://5w.zip", 2);//此处为要保存的本地路径