asp是这样防盗链的吗?
itljl 2005-05-18 11:33:29 把下面的代码存为Const.asp,然后在每个页面加<!-- #include File="INC/Const.asp" -->达到防盗链的目的吗?
-----------------------------
<%
On Error Resume Next
Response.Buffer = True
Response.Clear
Function UseStream(FileName)
Dim FileStream,File
Set FileStream = Server.CreateObject("ADODB.Stream")
FileStream.Open
FileStream.Type = 1
File = server.MapPath(FileName)
FileStream.LoadFromFile(File)
'Response.ContentType = "application/octet-stream"
Response.BinaryWrite FileStream.Read
Response.Flush
FileStream.Close
Set FileStream = Nothing
End Function
Function DownloadFile(FileName)
On error resume next
Server.ScriptTimeOut=999999
Response.Clear
Dim FileType,ADS,StrFileName,Data
FileType=Lcase(Split(FileName,".")(ubound(Split(FileName,"."))))
StrFileName=Server.Mappath(FileName)
TempFileName = Split(StrFileName,"\")(Ubound(Split(StrFileName,"\")))
Set ADS = Server.CreateObject("ADODB.Stream")
ADS.Open
ADS.Type = 1
ADS.LoadFromFile(StrFileName)
Data=ADS.Read
Fsize=Clng(lenb(Data))
If Err Then
'Response.Redirect("Images/NoImg2.gif")
Response.Write("<h1>错误: </h1>" & err.Description & "<p>")
Response.End
End If
ADS.Close
If Response.IsClientConnected Then
If FileType="gif" Or FileType="jpg" Or FileType="jpeg" Or FileType="bmp" Then
Response.ContentType = "image/*"
Else
Response.AddHeader "Content-Disposition", "attachment; filename=" & TempFileName
Response.ContentType = "application/ms-download"
End If
Response.AddHeader "Content-Length", Fsize
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite Data
Response.Flush
End If
End Function
Dim Server_v1,Server_v2,Path
Server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
Server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
If Server_v1<>"" And Mid(Server_v1,8,Len(Server_v2)) = Server_v2 Then
Path=Request("Path")
If Path="Face" Then
TFilePath= FacePath & "/" & Request("FileName")
Else
TFilePath = FilePath & "/" & Request("FileName")
End If
Else
TFilePath = "Images/NoImg.gif"
End If
If ChkFile(TFilePath) Then Response.Redirect("Images/NoImg2.gif")
DownloadFile(TFilePath)
Function ChkFile(FileName)
Dim Temp,FileType
ChkFile=False
FileType=Lcase(Split(FileName,".")(ubound(Split(FileName,"."))))
Temp="|asp|aspx|cgi|php|cdx|cer|asa|"
If Instr(Temp,"|"&FileType&"|")>0 Then ChkFile=True
End Function
%>
-----------------