ASP 隐藏下载地址及防盗链代码
来源:asp之家 发布时间:2011-02-26 11:17:00
代码如下:
<% FunctIon DownloadFIle(StrFIle)
StrFIlename=StrFIle
Response.Buffer=True
Response.Clear
Set S=Server.CreateObJect("ADODB.Stream")
S.Open
S.Type=1
on Error Resume Next
Set Fso=Server.CreateObJect("ScrIptIng.FIleSystemObJect")
If Not Fso.FIleExists(StrFIleName) Then
From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))
Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte "该文件不存在或者已经删除."
Response.End
End If
Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
Response.End
End If
FileExt=MId(StrFIlename,InStrRev(StrFIleName, ".")+1)
Select Case UCase(FIleExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB", "PHP", "JSP", "SHTML", "HTML", "HTM", "TV", "DATA"
From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))
Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte "该文件不存在或者已经删除."
Response.End
End If
Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
Response.End
End Select
Set F=Fso.GetFIle(StrFIlename)
IntFIlelength=F.SIze
s.LoadFromFIle(StrFIlename)
If Err Then
From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))
Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte "该文件数据不完整或许已损坏."
Response.End
End If
Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
Response.End
End If
Set Upload=Server.CreateObJect("PersIts.Upload")
If Upload Is Nothing Then
Response.AddHeader "Content-DIsposItIon","attachment; FIlename="&F.Name
Response.AddHeader "Content-Length",IntFilelength
Response.CharSet="UTF-8"
Response.ContentType="application/x-download"
Response.BinaryWrite S.Read
Response.Flush
S.Close
Set s=NothIng
Else
Upload.SendBinary StrFIlename,True,"application/x-download",False
End If
End FunctIon
%>
调用
代码如下:
<%Call DownloadFIle("下载地址")%>
猜你喜欢
- (一)、tf.train.Saver()(1). tf.train.Saver() 是用来保存tensorflow训练模型的,默认保存全部参
- 一开始自学Python的numpy、pandas时候,索引和切片把我都给弄晕了,特别是numpy的切片索引、布尔索引和花式索引,简直就是大乱
- Windows版mysql 8.0.28安装图解,供大家参考,具体内容如下1.官网下载最新版第一步双击打开 选择server only(因为
- 安装wgetyum -y install wget创建一个download目录用于下载各种安装包mkdir download切换到刚创建的d
- 我们在使用Django的models查询数据库时,可以看到有这种写法:form app.models import&nb
- Google Maps JavaScript. API可以让您在自己的网页上使用Google地图.在使用API之前,您应该先申请一 个API
- 1,使用mysqldump时报错(1064),这个是因为mysqldump版本太低与当前数据库版本不一致导致的。mysqldump: Cou
- tips: 路由绑定、菜单跳转、网页后退高亮显示1. 问题描述使用antd-vue 的 a-layout布局和a-menu菜单做一个侧边栏菜
- 1:django-admin.py startproject 项目名2:cd 项目名3:修改setting.py(1):
- 安装Tornado省事点可以直接用grequests库,下面用的是tornado的异步client。 异步用到了tornado,根据官方文档
- 转化为Boolean类型所有JavaScript中的值都能隐式的转化为Boolean类型,比如:0 == false; // true 1
- 本文实例讲述了Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法。分享给大家供大家参考,具体如下:统计两个红球和蓝球,哪个组合最
- 闭包在我们使用返回函数的时候,由于我们在一个函数中需要返回另一个函数,因此,我们在这个函数中就需要重新定义一个函数。而这样,就造成了我们的函
- 1.安装python windows版本好:python-2.5.1.msi2.安装pycrypto windows版本号:py
- 本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下:前面一篇介绍了《Java实现的求解经典罗马
- 本文实例为大家分享了JavaScript缓动动画函数的封装代码,供大家参考,具体内容如下本文将从封装缓动动画的以下几个部分进行封装(1、单个
- MySQL安装文件已被广泛应用但是也在不断的更新,这里介绍MySQL安装文件设置使用,帮助大家安装更新MySQL安装文件系统。Fedora5
- 动态页面的模拟点击:以斗鱼直播为例:http://www.douyu.com/directory/all爬取每页的房间名、直播类型、主播名称
- 本文实例讲述了python实现同时给多个变量赋值的方法。分享给大家供大家参考。具体分析如下:python中可以同时给多个变量赋值,下面列举了
- 遇到mysql ERROR 1045 这个问题搞了很久,自己记下来。方法是百度的,亲测有效。ERROR 1045 (28000): Acce