当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 通过修改referer下载文件的方法

Javascript
javascript 响应键盘特定按键(只响应数字键)
javascript indexOf方法、lastIndexOf 方法和substring 方法
javascript parseInt 函数分析(转)
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
JavaScript 面向对象入门精简篇
JS中==与===操作符的比较
JavaScript indexOf忽略大小写
dwr spring的集成实现代码
DWR Ext 加载数据
JavaScript 计算当天是本年本月的第几周
Js 获取当前日期时间及其它操作实现代码
javascript multibox 全选
JS array 数组详解
javascript 对象定义方法 简单易学
javascript 补零 函数集合
div scroll始终在最底部的实现代码
javascript eval()用法
javascript 打印页面代码
JAVASCRIPT THIS详解 面向对象
javascript 页面跳转方法集合

Javascript 中的 通过修改referer下载文件的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 361 ::
收藏到网摘: n/a

遇到了一个郁闷的事:如果让Http对象作全局变量,那么onreadystatechange只会在第一次执行时触发,以后都不会触发这个事件了。 只好在每次Down文件时重新创建一个XmlHttp对象。 GetFile.wsc
复制代码 代码如下:

<?xml version="1.0" encoding="gb2312"?>
<component>
<?component error="true" debug="true"?>
<public>
<property name="Referer" />
<property name="Content" />
<property name="Data" />
<method name="GetFile">
<parameter name="URL" />
</method>
<method name="Save">
<parameter name="Path" />
</method>
</public>
<implements type="Behavior">
<event name="ondowncomplete" />
</implements>
<object progid="Microsoft.XmlHttp" id="Http" />
<script language="javascript">
<![CDATA[
var Referer, Content, Data;
var Stream = new ActiveXObject("ADODB.Stream");
Stream.Type = 1;
function onReady()
{
if(Http.readyState == 4)
{
Content = Http.responseText;
Data = Http.responseBody;
fireEvent("ondowncomplete");
Http.abort();
}
}
function GetFile(URL)
{
Http.onreadystatechange = onReady;
Http.open("GET", URL, true, "", "");
if(Referer) Http.setRequestHeader("Referer", Referer);
Http.send(null);
}
function Save(Path)
{
Stream.Open();
Stream.Write(Data);
Stream.SaveToFile(Path, 2);
Stream.Close();
}
]]>
</script>
</component>

test.hta
复制代码 代码如下:

<html><head><script>
var Down = document.createElement("Comment");
document.lastChild.lastChild.appendChild(Down);
Down.style.behavior="url(GetFile.wsc)";
Down.ondowncomplete = function()
{
//document.write(Down.Content);
Down.Save(SaveTo.value);
Go.disabled=0;
alert("OK");
}
function GetFile()
{
Go.disabled = 1;
Down.Referer = Referer.value;
Down.GetFile(URL.value);
}
</script>
</head><body>
URL: <input id="URL" size="50" value="http://www.booksky.biz/SendFile.aspx?FileID=15531"><br>
Referer: <input name="Referer" size="40" value="http://www.booksky.biz"><br>
SaveTo: <input name="SaveTo" size="40" value="D:\Test.gif"><br>
<input id="Go" type=button value="下载" onclick="GetFile()">
</body></html>