js自动下载文件到本地的实现代码
作者:
其实就是利用了Microsoft.XMLHTTP实现远程文件的保存,不过需要修改下才可以运行,地址传参问题
复制代码 代码如下:
<html>
<head>
<title>js自动下载文件到本地</title>
<script language="javascript" type="text/javascript">
function InitAjax()
{
var ajax;
if(window.ActiveXObject){
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i <versions.length; i++) {
try {
ajax = new ActiveXObject(versions[i]);
if(ajax) {
return ajax;
}
} catch(e) {}
}
}else if(window.XMLHttpRequest)
{
ajax = new XMLHttpRequest();
}
return ajax;
}
//js自动下载文件到本地
var xh;
function getXML(geturl) {
alert(geturl);
xh = InitAjax();
xh.onreadystatechange = getReady;
xh.open("GET", geturl, true);
xh.send();
}
function getReady() {
//alert(xh.readyState);
if (xh.readyState == 4) {
alert(xh.status);
if (xh.status == 200) {
saveFile("d:\dd.gif");
return true;
}
else
{ return false; }
}
else
return false;
}
function saveFile(tofile) {
alert(tofile);
var objStream;
var imgs;
imgs = xh.responseBody;
objStream = new ActiveXObject("ADODB.Stream");
objStream.Type = 1;
objStream.open();
objStream.write(imgs);
objStream.SaveToFile(tofile)
}
//getXML("http://10.76.3.116/2.bmp");
//js自动下载文件到本地结束
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" value="124" onclick="getXML('http://img.jb51.net/images/dl.gif')">
</div>
</form>
</body>
</html>