通过修改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 Discuz代码中的msn聊天小功能
May 25 Javascript
Javascript中Eval函数的使用说明
Oct 11 Javascript
JS对象与JSON格式数据相互转换
Feb 20 Javascript
JS采用绝对定位实现回到顶部效果完整实例
Jun 20 Javascript
javascript函数的四种调用模式
Jan 08 Javascript
详解Vue监听数据变化原理
Mar 08 Javascript
Vue 过渡实现轮播图效果
Mar 27 Javascript
详解微信小程序Page中data数据操作和函数调用
Sep 27 Javascript
js 索引下标之li集合绑定点击事件
Jan 12 Javascript
js replace 全局替换的操作方法
Jun 12 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
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
快速配置PHPMyAdmin方法
2008/06/05 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
2011/01/07 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
js获取页面description的方法
2015/05/21 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
python实现数据写入excel表格
2018/03/25 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python 图片去噪的方法示例
2019/07/09 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
致400米运动员广播稿
2014/02/07 职场文书
秋天的图画教学反思
2014/05/01 职场文书
《从现在开始》教学反思
2016/02/16 职场文书