ASP 隐藏下载地址及防盗链代码
程序员文章站
2022-06-05 13:32:17
复制代码 代码如下:<% function downloadfile(strfile) strfilename=strfile response.buffer=tru...
复制代码 代码如下:
<% 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("下载地址")%>