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

Javascript
javascript IFrame 强制刷新代码
JQuery 学习笔记 选择器之一
JQuery 学习笔记 选择器之二
JQuery 学习笔记 选择器之三
JQuery 学习笔记 element属性控制
Prototype 工具函数 学习
Prototype Selector对象学习
用JQuery 实现AJAX加载XML并解析的脚本
jquery 表单下所有元素的隐藏
javascript 动态table添加colspan\rowspan 参数的方法
利用javascript/jquery对上传文件格式过滤的方法
javaScript 判断字符串是否为数字的简单方法
jquery 将disabled的元素置为enabled的三种方法
javascript 解析后的xml对象的读取方法细解
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
javascript 一个函数对同一元素的多个事件响应
对象特征检测法判断浏览器对javascript对象的支持
javaScript Array(数组)相关方法简述
js 字符串操作函数
JavaScript中null与undefined分析

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 231 ::
收藏到网摘: 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>