通过修改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对select操作小结(遍历option,操作option)
Jul 04 Javascript
JavaScript获取路径设计源码
May 22 Javascript
js实现拖拽功能
Mar 01 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
Jun 19 Javascript
JavaScript中使用Async实现异步控制
Aug 15 Javascript
js实现动态改变radio状态的方法
Feb 28 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
使用vue开发移动端管理后台的注意事项
Mar 07 Javascript
VSCode使用之Vue工程配置eslint
Apr 30 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 Javascript
重置Redux的状态数据的方法实现
Nov 18 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 jQuery
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
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
PHP strtotime函数详解
2009/12/18 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
php防攻击代码升级版
2010/12/29 PHP
浅析php原型模式
2014/11/25 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python实现二分查找算法
2017/09/21 Python
python线程池threadpool实现篇
2018/04/27 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
社区先进事迹材料
2014/05/19 职场文书
专家推荐信范文
2015/03/26 职场文书
2015年双拥工作总结
2015/04/08 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
详解Vue slot插槽
2021/11/20 Vue.js
无线电通信名词解释
2022/02/18 无线电
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android
Python如何加载模型并查看网络
2022/07/15 Python