通过修改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 相关文章推荐
判断页面是关闭还是刷新的js代码
Jan 28 Javascript
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
js写的评论分页(还不错)
Dec 23 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
jquery可定制的在线UEditor编辑器
Nov 17 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
使用rollup打包JS的方法步骤
Dec 05 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
Apr 28 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
webpack.DefinePlugin与cross-env区别详解
Feb 23 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
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
Js+XML 操作
2006/09/20 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
深入浅析Python中的yield关键字
2018/01/24 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
Python实现最常见加密方式详解
2019/07/13 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
python实现复制大量文件功能
2019/08/31 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python随机数分布random均匀分布实例
2019/11/27 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
几个Shell Script面试题
2012/08/31 面试题
会计电算化专业个人的自我评价
2013/11/24 职场文书
小学生安全演讲稿
2014/04/25 职场文书
个人查摆剖析材料
2014/10/04 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书