首页 > 代码库 > 两种 js下载文件的方法(转)

两种 js下载文件的方法(转)

function DownURL(strRemoteURL, strLocalURL){        try{            var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");            xmlHTTP.open("Get", strRemoteURL, false);            xmlHTTP.send();            var adodbStream = new ActiveXObject("ADODB.Stream");            adodbStream.Type = 1;//1=adTypeBinary             adodbStream.Open();            adodbStream.write(xmlHTTP.responseBody);            adodbStream.SaveToFile(strLocalURL, 2);            adodbStream.Close();            adodbStream = null;            xmlHTTP = null;        }        catch (e){            window.confirm("下载URL出错!");        }        //window.confirm("下载完成.");     }

例如要下载文件的地址为:htpp://www.baidu.com/test.rar  
我们可以使用window.open("htpp://www.baidu.com/test.rar"),  
但是该方法在火狐上没有效果的,在IE浏览器上是可以的。  

如果用window.location.href="htpp://www.baidu.com/test.rar";火狐有些版本是不支持的。  

为了解决这个问题,我们可以换做另外一种方法  
我们可以写成如下样式即可以了:  
window.location="htpp://www.baidu.com/test.rar"; 

2.文件的下载到本地(默认)(ie 和火狐都可以)

function downloadFile(url) {           try{             var elemIF = document.createElement("iframe");               elemIF.src = url;               elemIF.style.display = "none";               document.body.appendChild(elemIF);           }catch(e){          }     }

js触发: 
<div class="login_center"><a href="javascript:_login()"></a></div> 
    <input type="button" value="http://www.mamicode.com/进入1" onClick = "downloadFile(‘http://wan.exe‘)">

注:在HTML中,IFRAME的属性用SRC,但在JS中,只有部份浏览器支持修改SRC(读是没问题),真正通用的是要修改对应框架的href值。

function switchIframe(){    window.frames["frameName"].location.href="http://www.mamicode.com/action(或你需要的名字).aspx"        }