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


Posted in Javascript onMay 11, 2008

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> 
Javascript 相关文章推荐
JavaScript入门教程(10) 认识其他对象
Jan 31 Javascript
js 上下左右键控制焦点(示例代码)
Dec 14 Javascript
jQuery的选择器中的通配符使用介绍
Mar 20 Javascript
自编jQuery插件实现模拟alert和confirm
Sep 01 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
js window对象属性和方法相关资料整理
Nov 11 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
Bootstrap和Java分页实例第二篇
Dec 23 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
JavaScript中关于class的调用方法
Nov 28 Javascript
JS简单生成由字母数字组合随机字符串示例
May 25 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
JS启动应用程序的一个简单例子
May 11 #Javascript
一段利用WSH获取登录时间的jscript代码
May 11 #Javascript
一段利用WSH修改和查看IP配置的代码
May 11 #Javascript
JS处理VBArray的函数使用说明
May 11 #Javascript
获取当前网页document.url location.href区别总结
May 10 #Javascript
用javascript获取textarea中的光标位置
May 06 #Javascript
用js实现下载远程文件并保存在本地的脚本
May 06 #Javascript
You might like
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP number_format() 函数定义和用法
2012/06/01 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
小学英语教学反思
2014/01/30 职场文书
2014年工商所工作总结
2014/12/09 职场文书
任命书标准格式
2015/03/02 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python