|
好多朋友做了下载站,但经常被盗链的严重,所以大家可以用这个方法隐藏真实下载地址。让别人无法看到具体的下载地址。
复制代码 代码如下: <% 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("下载地址")%>
|
|