通过修改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自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
JQuery实现可直接编辑的表格
Apr 16 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
基于JS实现省市联动效果代码分享
Jun 06 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
May 24 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
Dec 03 Javascript
Node.js事件的正确使用方法
Apr 05 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
May 28 Javascript
手机浏览器唤起微信分享(JS)
Oct 11 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中使用与Perl兼容的正则表达式
2006/11/26 PHP
推荐php模板技术[转]
2007/01/04 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
详解vue表单——小白速看
2018/04/08 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
python找出完数的方法
2018/11/12 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
python实现车牌识别的示例代码
2019/08/05 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
请介绍一下Ant
2016/07/22 面试题
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
气象学专业个人求职信
2014/04/22 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
音乐剧猫观后感
2015/06/04 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
Go语言应该什么情况使用指针
2021/07/25 Golang