通过修改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下操作HTML控件的实现代码
Jan 12 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
THREE.JS入门教程(4)创建粒子系统
Jan 24 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
JavaScript深度复制(deep clone)的实现方法
Feb 19 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 Javascript
Actionscript与javascript交互实例程序(修改)
Sep 22 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
Aug 04 Javascript
详解vue静态资源打包中的坑与解决方案
Feb 05 Javascript
JsChart组件使用详解
Mar 04 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
Sep 05 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
php分页函数
2006/07/08 PHP
php 全文搜索和替换的实现代码
2008/07/29 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
js实现文字截断功能
2016/09/14 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
深入解析Python中的lambda表达式的用法
2015/08/28 Python
python算法表示概念扫盲教程
2017/04/13 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
签字仪式主持词
2015/07/03 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
解决mysql的int型主键自增问题
2021/07/15 MySQL