通过修改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 相关文章推荐
jquery 最简单的属性菜单
Oct 08 Javascript
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
JS实现在页面随时自定义背景颜色的方法
Feb 27 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
BootStrap中的表单大全
Sep 07 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
Mar 02 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
Nov 02 Javascript
vue+element UI实现树形表格带复选框的示例代码
Apr 16 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
Feb 14 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
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
es6数值的扩展方法
2019/03/11 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
Django学习笔记之ORM基础教程
2018/03/27 Python
详解python读取image
2019/04/03 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
python3处理word文档实例分析
2020/12/01 Python
Collection和Collections的区别
2016/05/02 面试题
送货司机岗位职责
2013/12/11 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
土地转让协议书
2014/04/15 职场文书
白血病募捐倡议书
2014/05/14 职场文书
公务员诚信承诺书
2014/05/26 职场文书
运动会闭幕词
2015/01/28 职场文书
整改通知书
2015/04/20 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android