附件管理整合版(防盗链)
作者:情留メ蚊子 日期:2009-01-03
大家都希望PJ中能集成防盗链功能,但是多次想Evio提出要集成都不能集成,只有发出修改方法了。
control/c_SQLFile.asp因为这个文件大家应该没有修改 直接给文件覆盖了。
打开control/Action.asp 找到
在上面插入
打开control/f_control.asp 找到:在上面添加
找到:'----------- 获取文件信息 ----------------------------
*********到**************
'----------- 获得目标大小 ----------------------------
全部替换成:
[分页符]
打开:Action.asp
在上插入
在 set checkcdb=nothing 下面添加
打开:common/ubbcode.asp 找到在上面插入
[分页符]
打开:attachment.asp 找到
下面添加:
找到:
替换成:
找到: </form>")前面添加:
找到:Set F_File = FileUP.File("File")
下面添加:dim AntiDown:AntiDown = FileUp.Form("AntiDown")
修改完成。
下载附件:
Filesupdate.asp ========= 升级数据库
download.asp ======== 需要添加,放在根目录下
control/c_SQLFile.asp ====== 没有提供修改方法,直接覆盖。
其他文件 没有修改过程序(170最终版)的建议 直接覆盖。
防盗链说明:
应该没有使用插件,使用控制防盗链的总体开关在download.asp dd = 0 '1====关闭防盗链 0=====开启防盗链 这里设置。当关闭防盗链后 如果地址都可以盗链。
地址: 例如:download.asp?id=1&code=F24757B14A 附带了红色部分的地址可以盗链,红色的字符串是唯一的,每个文件都不同的。
control/c_SQLFile.asp因为这个文件大家应该没有修改 直接给文件覆盖了。
打开control/Action.asp 找到
复制内容到剪贴板
程序代码
程序代码ElseIf Request.Form("action") = "Attachments" Then
在上面插入
复制内容到剪贴板
程序代码
程序代码ElseIf Request.Form("action") = "Attachment2" Then
Dim FilesID, FilesPath, FilesCounts, i
If Request.form("S_Action")="DelSelect" then
FilesID = split(Request.form("SelectFilesID"),", ")
For i = 0 to ubound(FilesID)
Conn.execute("Delete * from blog_Files where id="&FilesID(i))
next
session(CookieName&"_ShowMsg") = True
session(CookieName&"_MsgText") = session(CookieName&"_MsgText")&(ubound(FilesID)+1)&" 个附件被删除!"
Response.Redirect("ConContent.asp?Fmenu=SQLFile&Smenu=Attachment")
Else
FilesID = split(Request.form("FilesID"),", ")
FilesPath = split(Request.form("url"),", ")
FilesCounts = split(Request.form("count"),", ")
For i = 0 to ubound(FilesID)
If Int(FilesID(i)) <> -1 then
Conn.execute("update blog_Files set FilesPath='"&CheckStr(FilesPath(i))&"',FilesCounts='"&FilesCounts(i)&"' where id="&FilesID(i))
End If
Next
session(CookieName&"_ShowMsg") = True
session(CookieName&"_MsgText") = session(CookieName&"_MsgText")&"附件保存成功!"
Response.Redirect("ConContent.asp?Fmenu=SQLFile&Smenu=Attachment")
End If
Dim FilesID, FilesPath, FilesCounts, i
If Request.form("S_Action")="DelSelect" then
FilesID = split(Request.form("SelectFilesID"),", ")
For i = 0 to ubound(FilesID)
Conn.execute("Delete * from blog_Files where id="&FilesID(i))
next
session(CookieName&"_ShowMsg") = True
session(CookieName&"_MsgText") = session(CookieName&"_MsgText")&(ubound(FilesID)+1)&" 个附件被删除!"
Response.Redirect("ConContent.asp?Fmenu=SQLFile&Smenu=Attachment")
Else
FilesID = split(Request.form("FilesID"),", ")
FilesPath = split(Request.form("url"),", ")
FilesCounts = split(Request.form("count"),", ")
For i = 0 to ubound(FilesID)
If Int(FilesID(i)) <> -1 then
Conn.execute("update blog_Files set FilesPath='"&CheckStr(FilesPath(i))&"',FilesCounts='"&FilesCounts(i)&"' where id="&FilesID(i))
End If
Next
session(CookieName&"_ShowMsg") = True
session(CookieName&"_MsgText") = session(CookieName&"_MsgText")&"附件保存成功!"
Response.Redirect("ConContent.asp?Fmenu=SQLFile&Smenu=Attachment")
End If
打开control/f_control.asp 找到:
复制内容到剪贴板
程序代码
程序代码cTitle.Add "SQLFile." , "数据库与附件 - 数据库管理"
复制内容到剪贴板
程序代码
程序代码 cTitle.Add "SQLFile.Attachment" , "数据库与附件 - 附件信息"
找到:'----------- 获取文件信息 ----------------------------
*********到**************
'----------- 获得目标大小 ----------------------------
全部替换成:
复制内容到剪贴板
程序代码
程序代码Function getFileInfo(FileName)
Dim FSO, File, FileInfo(10)
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Server.MapPath(FileName)) Then
Set File = FSO.GetFile(Server.MapPath(FileName))
FileInfo(0)=File.Size
If FileInfo(0)>1024 Then
FileInfo(0)=Round(FileInfo(0) / 1024,2)
If FileInfo(0) > 1024 Then
FileInfo(0)=Round(FileInfo(0) / 1024,2)
FileInfo(0)= FileInfo(0) & " MB"
Else
FileInfo(0)= FileInfo(0) & " KB"
End If
Else
FileInfo(0)= FileInfo(0) & " Byte"
End If
FileInfo(1) = LCase(Right(FileName, 4))
FileInfo(2) = File.DateCreated
FileInfo(3) = File.Type
FileInfo(4) = File.DateLastModified
FileInfo(5) = File.Path
FileInfo(6) = "" 'File.ShortPath 部分服务器不支持
FileInfo(7) = File.Name
FileInfo(8) = "" 'File.ShortName 部分服务器不支持
FileInfo(9) = FSO.getExtensionName(Server.MapPath(FileName))
FileInfo(10) = File.DateLastModified
End If
getFileInfo = FileInfo
Set FSO = Nothing
End Function
'----------- 获取文件图标 ----------------------------
Function getFileIcons(Str)
Dim FileIcon
If FileExist("images/file/"&Str&".gif") Then FileIcon = Str Else FileIcon = "unknow"
getFileIcons = "<img border=""0"" src=""images/file/"&FileIcon&".gif"" style=""margin:4px 3px -3px 0px""/>"
End Function
Dim FSO, File, FileInfo(10)
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Server.MapPath(FileName)) Then
Set File = FSO.GetFile(Server.MapPath(FileName))
FileInfo(0)=File.Size
If FileInfo(0)>1024 Then
FileInfo(0)=Round(FileInfo(0) / 1024,2)
If FileInfo(0) > 1024 Then
FileInfo(0)=Round(FileInfo(0) / 1024,2)
FileInfo(0)= FileInfo(0) & " MB"
Else
FileInfo(0)= FileInfo(0) & " KB"
End If
Else
FileInfo(0)= FileInfo(0) & " Byte"
End If
FileInfo(1) = LCase(Right(FileName, 4))
FileInfo(2) = File.DateCreated
FileInfo(3) = File.Type
FileInfo(4) = File.DateLastModified
FileInfo(5) = File.Path
FileInfo(6) = "" 'File.ShortPath 部分服务器不支持
FileInfo(7) = File.Name
FileInfo(8) = "" 'File.ShortName 部分服务器不支持
FileInfo(9) = FSO.getExtensionName(Server.MapPath(FileName))
FileInfo(10) = File.DateLastModified
End If
getFileInfo = FileInfo
Set FSO = Nothing
End Function
'----------- 获取文件图标 ----------------------------
Function getFileIcons(Str)
Dim FileIcon
If FileExist("images/file/"&Str&".gif") Then FileIcon = Str Else FileIcon = "unknow"
getFileIcons = "<img border=""0"" src=""images/file/"&FileIcon&".gif"" style=""margin:4px 3px -3px 0px""/>"
End Function
[分页符]
打开:Action.asp
在
复制内容到剪贴板
程序代码
程序代码<%
复制内容到剪贴板
程序代码
程序代码<!--#include file="control/f_control.asp" -->
在 set checkcdb=nothing 下面添加
复制内容到剪贴板
程序代码
程序代码ElseIf request("action") = "Antidown" or request("action") = "Antimdown" then
dim down, showdownstr, id
response.expires=-1
response.expiresabsolute=now()-1
response.cachecontrol="no-cache"
id = request("id")
id = split(id,"&")(0)
Set down = conn.execute("select FilesPath,FilesCounts from blog_Files where id="&id)
response.clear()
If request("action") = "Antimdown" and memName = empty Then
showdownstr = getFileIcons(getFileInfo(down(0))(9))&" 该文件只允许会员下载! <a href=""login.asp"" accesskey=""L"">登录</a> | <a href=""register.asp"">注册</a>"
Else
showdownstr = getFileIcons(getFileInfo(down(0))(9))&" <a href="""&request("downurl")&""" target=""_blank"">"&trim(checkstr(request("main")))&" </a>[该附件大小 <font color=red>"&getFileInfo(down(0))(0)&"</font> ; 更新于 <font color=red>"&Datetostr(getFileInfo(down(0))(10),"Y-m-d")&"</font> ; 已被下载 <font color=red>"&down(1)&"</font> 次]"
End If
response.write showdownstr
dim down, showdownstr, id
response.expires=-1
response.expiresabsolute=now()-1
response.cachecontrol="no-cache"
id = request("id")
id = split(id,"&")(0)
Set down = conn.execute("select FilesPath,FilesCounts from blog_Files where id="&id)
response.clear()
If request("action") = "Antimdown" and memName = empty Then
showdownstr = getFileIcons(getFileInfo(down(0))(9))&" 该文件只允许会员下载! <a href=""login.asp"" accesskey=""L"">登录</a> | <a href=""register.asp"">注册</a>"
Else
showdownstr = getFileIcons(getFileInfo(down(0))(9))&" <a href="""&request("downurl")&""" target=""_blank"">"&trim(checkstr(request("main")))&" </a>[该附件大小 <font color=red>"&getFileInfo(down(0))(0)&"</font> ; 更新于 <font color=red>"&Datetostr(getFileInfo(down(0))(10),"Y-m-d")&"</font> ; 已被下载 <font color=red>"&down(1)&"</font> 次]"
End If
response.write showdownstr
打开:common/ubbcode.asp 找到
复制内容到剪贴板
程序代码
程序代码re.Pattern = "\[down=(.[^\]]*)\](.[^\[]*)\[\/down]"
复制内容到剪贴板
程序代码
程序代码 dim rndnum11, rndnum22, rndnum33, rndnum44
re.Pattern = "\[down=(download\.asp\?id=)(.[^\[]*)\](.[^\[]*)\[\/down]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
tmpStr3 = strMatch.SubMatches(2)
rndnum11 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""down_"&rndnum11&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antidown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode(tmpStr3)&"','down_"&rndnum11&"','down_"&rndnum11&"');</script>", 1, -1, 0)
Next
re.Pattern = "\[down\](download\.asp\?id=)(.[^\[]*)\[\/down\]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
rndnum22 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""down_"&rndnum22&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antidown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode("点击下载此文件")&"','down_"&rndnum22&"','down_"&rndnum22&"');</script>", 1, -1, 0)
Next
re.Pattern = "\[mDown=(download\.asp\?id=)(.[^\[]*)\](.[^\[]*)\[\/mDown]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
tmpStr3 = strMatch.SubMatches(2)
rndnum33 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""mdown_"&rndnum33&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antimdown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode(tmpStr3)&"','mdown_"&rndnum33&"','mdown_"&rndnum33&"');</script>", 1, -1, 0)
Next
re.Pattern = "\[mDown\](download\.asp\?id=)(.[^\[]*)\[\/mDown]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
rndnum44 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""mdown_"&rndnum44&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antimdown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode("点击下载此文件")&"','mdown_"&rndnum44&"','mdown_"&rndnum44&"');</script>", 1, -1, 0)
Next
re.Pattern = "\[down=(download\.asp\?id=)(.[^\[]*)\](.[^\[]*)\[\/down]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
tmpStr3 = strMatch.SubMatches(2)
rndnum11 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""down_"&rndnum11&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antidown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode(tmpStr3)&"','down_"&rndnum11&"','down_"&rndnum11&"');</script>", 1, -1, 0)
Next
re.Pattern = "\[down\](download\.asp\?id=)(.[^\[]*)\[\/down\]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
rndnum22 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""down_"&rndnum22&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antidown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode("点击下载此文件")&"','down_"&rndnum22&"','down_"&rndnum22&"');</script>", 1, -1, 0)
Next
re.Pattern = "\[mDown=(download\.asp\?id=)(.[^\[]*)\](.[^\[]*)\[\/mDown]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
tmpStr3 = strMatch.SubMatches(2)
rndnum33 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""mdown_"&rndnum33&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antimdown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode(tmpStr3)&"','mdown_"&rndnum33&"','mdown_"&rndnum33&"');</script>", 1, -1, 0)
Next
re.Pattern = "\[mDown\](download\.asp\?id=)(.[^\[]*)\[\/mDown]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = checkURL(strMatch.SubMatches(0))
tmpStr2 = strMatch.SubMatches(1)
rndnum44 = randomStr(10)
strContent = Replace(strContent, strMatch.Value, "<span id=""mdown_"&rndnum44&"""></span><script language=""javascript"" type=""text/javascript"">check('Action.asp?action=Antimdown&id="&tmpStr2&"&downurl="&server.URLEncode(tmpStr1&tmpStr2)&"&main="&server.URLEncode("点击下载此文件")&"','mdown_"&rndnum44&"','mdown_"&rndnum44&"');</script>", 1, -1, 0)
Next
[分页符]
打开:attachment.asp 找到
复制内容到剪贴板
程序代码
程序代码F_File.SaveAs Server.MapPath("attachments/"&D_Name&"/"&F_Name)
下面添加:
复制内容到剪贴板
程序代码
程序代码 Dim UploadDB, UploadID
set UploadDB = server.CreateObject("adodb.recordset")
UploadDB.open "blog_Files", Conn, 1, 2
UploadDB.addnew
UploadDB("FilesPath") = trim("attachments/"&D_Name&"/"&F_Name)
UploadDB.update
UploadDB.movelast
UploadID = UploadDB("ID")
IF AntiDown <> "1" then UploadID = UploadID&"&code="&right(md5(right(Ucase("attachments/"&D_Name&"/"&F_Name),15)),10)
set UploadDB = server.CreateObject("adodb.recordset")
UploadDB.open "blog_Files", Conn, 1, 2
UploadDB.addnew
UploadDB("FilesPath") = trim("attachments/"&D_Name&"/"&F_Name)
UploadDB.update
UploadDB.movelast
UploadID = UploadDB("ID")
IF AntiDown <> "1" then UploadID = UploadID&"&code="&right(md5(right(Ucase("attachments/"&D_Name&"/"&F_Name),15)),10)
找到:
复制内容到剪贴板
程序代码
程序代码response.Write "<script>addUploadItem('"&F_Type&"','attachments/"&D_Name&"/"&F_Name&"',"&Request.QueryString("MSave")&")</script>"
替换成:
复制内容到剪贴板
程序代码
程序代码response.write "<script>addUploadItem('"&F_Type&"','download.asp?id="&UploadID&"',"&Request.QueryString("MSave")&")</script>"
找到: </form>")前面添加:
复制内容到剪贴板
程序代码
程序代码<input type=""checkbox"" name=""AntiDown"" value=""1""/><label>防盗链 </label>
找到:Set F_File = FileUP.File("File")
下面添加:dim AntiDown:AntiDown = FileUp.Form("AntiDown")
修改完成。
下载附件:
Filesupdate.asp ========= 升级数据库
download.asp ======== 需要添加,放在根目录下
control/c_SQLFile.asp ====== 没有提供修改方法,直接覆盖。
其他文件 没有修改过程序(170最终版)的建议 直接覆盖。
防盗链说明:
应该没有使用插件,使用控制防盗链的总体开关在download.asp dd = 0 '1====关闭防盗链 0=====开启防盗链 这里设置。当关闭防盗链后 如果地址都可以盗链。
地址: 例如:download.asp?id=1&code=F24757B14A 附带了红色部分的地址可以盗链,红色的字符串是唯一的,每个文件都不同的。
评论: 7 | 引用: 0 | 查看次数: 5141
我安装你的方法修改了,是静态页面
但是老是加载状态
这是怎么回事??
但是老是加载状态
这是怎么回事??
The Microsoft Jet database engine cannot find the input table or query 'blog_Files'. Make sure it exists and that its name is spelled correctly.
/blog/control/c_SQLFile.asp, line 77
/blog/control/c_SQLFile.asp, line 77
情留メ蚊子 于 2009-03-02 05:53 PM 回复
请升级数据库
第一件事情:你的留言板不好用了,留言提交后找不到地址
第二件事情:我非常喜欢你的这个选项卡,相关日志(支持全静态别名)的东西,你可以发给我修改方法或者代码吗?
第二件事情:我非常喜欢你的这个选项卡,相关日志(支持全静态别名)的东西,你可以发给我修改方法或者代码吗?
蚊子兄 能不能把你的站的留言本发我一份 我的好像不能支持别名静态模式下的内页侧栏。
我的邮箱是 7223033@qq.com
还有你的留言本现在不能留言了 不知道为什么 所以就发这了 请见谅
我的邮箱是 7223033@qq.com
还有你的留言本现在不能留言了 不知道为什么 所以就发这了 请见谅
放假喽。..........
请问这个什么原理啊。。。目标另存为和迅雷就不能下载。。。但还是在你的网站啊。。。防盗链不是应该其他网站才不能下载的吗~
情留メ蚊子 于 2009-01-04 12:01 AM 回复
用迅雷可以下载。。另保存不能,用IE默认的下载可以
发表评论
上一篇
下一篇

文章来自:
Tags:
相关日志:
回复
第一个
后台管理 附件信息 这边,怎么让每页显示100个?
第二个
修改后文章没有引用的附件不会自动选中
不知道是我的问题还是代码的问题