<% dim path dim objFSO dim uploadfolder dim uploadfiles dim upname dim UpFolder dim upfilename dim admin_flag admin_flag="72" dim sfor(30,2) if not master or instr(session("flag"),admin_flag)=0 then Errmsg=Errmsg+"
"+"
  • 本页面为管理员专用,请登陆后进入。
  • 您没有管理本页面的权限。" call dvbbs_Error() else if request("Submit")="清理记录" then call delall() elseif request("Submit")="清除未记录文件" then call delall1() else call main() end if end if sub main() if request("path")<>"" then path=request("path") else path="UploadFile" end if %>

    注意
    ①、本功能必须服务器支持FSO权限方能使用,FSO使用帮助请浏览微软网站。如果您服务器不支持FSO请手动管理。
    ②、新版(DV6)之后的版本上传目录强制定义为UploadFile,只有该目录下文件可进行文件自动清理工作,新版之前的版本上传文件只能手动清除垃圾上传文件
    ③、自动清理文件:将对所有上传文件进行核实,如发现文件没有被相关帖子所使用,将执行自动清除命令

    论坛上传文件夹uploadimages | UploadFile 
    要查看的文件夹:  请填写正确的文件夹名或路径
    当前浏览 <%=path%> 目录的所有文件列表如下

    <% sFor(0,0)="txt":sFor(0,1)="txt" sFor(1,0)="chm":sFor(1,1)="chm" sFor(2,0)="hlp":sFor(2,1)="chm" sFor(3,0)="doc":sFor(3,1)="doc" sFor(4,0)="pdf":sFor(4,1)="pdf" sFor(5,0)="gif":sFor(5,1)="gif" sFor(6,0)="jpg":sFor(6,1)="jpg" sFor(7,0)="png":sFor(7,1)="png" sFor(8,0)="bmp":sFor(8,1)="bmp" sFor(9,0)="asp":sFor(9,1)="asp" sFor(10,0)="jsp":sFor(10,1)="asp" sFor(11,0)="js" :sFor(11,1)="asp" sFor(12,0)="htm":sFor(12,1)="html" sFor(13,0)="html":sFor(13,1)="html" sFor(14,0)="shtml":sFor(14,1)="html" sFor(15,0)="zip":sFor(15,1)="zip" sFor(16,0)="rar":sFor(16,1)="rar" sFor(17,0)="exe":sFor(17,1)="exe" sFor(18,0)="avi":sFor(18,1)="avi" sFor(19,0)="mpg":sFor(19,1)="mpg" sFor(20,0)="ra" :sFor(20,1)="ra" sFor(21,0)="ram":sFor(21,1)="ra" sFor(22,0)="mid":sFor(22,1)="mid" sFor(23,0)="wav":sFor(23,1)="wav" sFor(24,0)="mp3":sFor(24,1)="mp3" sFor(25,0)="asf":sFor(25,1)="asf" sFor(26,0)="php":sFor(26,1)="aspx" sFor(27,0)="php3":sFor(27,1)="aspx" sFor(28,0)="aspx":sFor(28,1)="aspx" sFor(29,0)="xls":sFor(29,1)="xls" sFor(30,0)="mdb":sFor(30,1)="mdb" dim pagesize, page, filenum, pagenum pagesize=20 page=request.querystring("page") if page="" or not isnumeric(page) then page=1 else page=int(page) end if %> <% Set objFSO = Server.CreateObject("Scripting.FileSystemObject") if request("filename")<>"" then if objFSO.fileExists(Server.MapPath(""&path&"\"&request("filename"))) then objFSO.DeleteFile(Server.MapPath(""&path&"\"&request("filename"))) else response.write "未找到"&path&request("filename") end if end if on error resume next Set uploadFolder=objFSO.GetFolder(Server.MapPath(""&path&"\")) if err.number<>0 then response.write "" response.end end if Set uploadFiles=uploadFolder.Files filenum=uploadfiles.count pagenum=int(filenum/pagesize) if filenum mod pagesize>0 then pagenum=pagenum+1 end if if page> pagenum then page=1 end if i=0 For Each Upname In uploadFiles i=i+1 if i>(page-1)*pagesize and i<=page*pagesize then upfilename=upname.name response.write "" response.write "" response.write "" response.write "" response.write "" response.write "" elseif i>page*pagesize then exit for end if next set uploadFolder=nothing set uploadFiles=nothing %> " if path="UploadFile" then %> <%end if%>
    类型 文件地址 大小 最后访问 上传日期 管理
    "&Err.Description&"
    "&upfilename&""& upname.size &" B "& upname.datelastaccessed &""& upname.datecreated &"删除
    <% if page>1 then response.write "首页  上一页  " else response.write "首页  上一页  " end if if page下一页  尾页" else response.write "下一页  尾页" end if response.write " 共 "&filenum&" 个文件 "&_ "
    清理时同时直接删除文件 是 
    <% end sub sub delall() path="UploadFile" dim F_ID,F_AnnounceID,F_boardid,F_filename dim S_AnnounceID,s_Rootid dim drs,delfile dim delinfo delfile=trim(request.form("delfile")) if cint(delfile)=1 then delinfo="已被删除!" else delinfo="未被删除!" end if i=0 Set objFSO = Server.CreateObject("Scripting.FileSystemObject") set rs=conn.execute("select F_ID,F_AnnounceID,F_BoardID,F_Filename from [DV_Upfile] where F_Flag=0 order by F_ID desc ") if rs.eof then response.write "还未有" else do while not rs.eof F_ID=rs(0) F_boardid=rs(2) if instr(rs(3),"/")=0 then '判断文件是否本论坛,若不是则采用表中的记录. F_filename="UploadFile/"&rs(3) else F_filename=rs(3) end if if rs(1)="" or isnull(rs(1)) then if delfile=1 then conn.execute("delete from DV_Upfile where F_ID="&F_ID&" ") end if if instr(rs(3),"/")=0 then if objFSO.fileExists(Server.MapPath(F_filename)) then if delfile=1 then objFSO.DeleteFile(Server.MapPath(F_filename)) end if response.write "文件未写帖子,"&F_filename&" "&delinfo&"
    " else response.write "文件未写帖子,"&F_filename&" 已不存在!
    " end if else response.write "外部文件"&F_filename&" "&delinfo&"
    " end if i=i+1 else if isnumeric(rs(1)) then S_AnnounceID=rs(1) else F_AnnounceID=split(rs(1),"|") s_Rootid=F_AnnounceID(0) S_AnnounceID=F_AnnounceID(1) end if '找出相应的帖子进行判断文件是否存在帖子内容 set drs=conn.execute("select body from "&AllPostTable(0)&" where AnnounceID="&S_AnnounceID&" ") if drs.eof then if delfile=1 then conn.execute("delete from DV_Upfile where F_ID="&F_ID&" ") end if if objFSO.fileExists(Server.MapPath(F_filename)) then if delfile=1 then objFSO.DeleteFile(Server.MapPath(F_filename)) end if response.write "帖子未找到,"&F_filename&" "&delinfo&"
    " else response.write "帖子未找到,"&F_filename&" 已不存在!
    " end if i=i+1 else if instr(drs(0),"viewfile.asp?ID="&F_ID&"")=0 and instr(drs(0),F_filename)=0 then if delfile=1 then conn.execute("delete from DV_Upfile where F_ID="&F_ID&" ") end if if objFSO.fileExists(Server.MapPath(F_filename)) then if delfile=1 then objFSO.DeleteFile(Server.MapPath(F_filename)) end if response.write "帖子内容不符,"&F_filename&" "&delinfo&"[查看相关讨论 | 编辑]
    " else response.write "帖子内容不符,"&F_filename&" 已不存在![查看相关讨论 | 编辑]
    " end if i=i+1 end if end if drs.close end if rs.movenext loop end if rs.close set drs=nothing set rs=nothing set objFSO=nothing response.write"共清理 "&i&" 个无用文件 [返回]" end sub sub delall1() dim delfile,delinfo delfile=checkStr(trim(request.form("delfile"))) if cint(delfile)=1 then delinfo="已被删除!" else delinfo="未被删除!" end if path="UploadFile" Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set uploadFolder=objFSO.GetFolder(Server.MapPath(""&path&"\")) Set uploadFiles=uploadFolder.Files i=0 For Each Upname In uploadFiles upfilename=""&path&"/"&upname.name set rs=conn.execute("select top 1 F_ID from DV_Upfile where F_Filename like '%"&upname.name&"%' ") if rs.eof then i=i+1 if delfile=1 then objFSO.DeleteFile(Server.MapPath(upfilename)) end if response.write ""&upfilename&" "&delinfo&"
    " end if rs.close set rs=nothing next response.write"共删除 "&i&" 个无用文件 [返回]" set uploadFolder=nothing set uploadFiles=nothing end sub sub delall2() dim selectfile dim bid,sid,did dim delfile,delinfo delfile=checkStr(trim(request.form("delfile"))) if cint(delfile)=1 then delinfo="已被删除!" else delinfo="未被删除!" end if path=request("path") Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set uploadFolder=objFSO.GetFolder(Server.MapPath(""&path&"\")) Set uploadFiles=uploadFolder.Files i=0 For Each Upname In uploadFiles upfilename=""&path&"/"&upname.name if instr(upname.name,"_")>0 then selectfile=split(upname.name,"_") bid=selectfile(0) sid=selectfile(1) if isnumeric(bid) and isnumeric(sid) then set rs=conn.execute("select body from "&AllPostTable(0)&" where AnnounceID="&sid&" ") if rs.eof then i=i+1 if delfile=1 then objFSO.DeleteFile(Server.MapPath(upfilename)) end if response.write ""&upfilename&" "&delinfo&"
    " else if instr(rs(0),upfilename)=0 then i=i+1 if delfile=1 then objFSO.DeleteFile(Server.MapPath(upfilename)) end if response.write ""&upfilename&" "&delinfo&"
    " end if end if rs.close set rs=nothing end if else i=i+1 if delfile=1 then objFSO.DeleteFile(Server.MapPath(upfilename)) end if response.write ""&upfilename&" 已被删除!
    " end if next response.write"共删除 "&i&" 个无用文件 [返回]" set uploadFolder=nothing set uploadFiles=nothing end sub function folder(path) on error resume next Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set uploadFolder=objFSO.GetFolder(Server.MapPath(path)) if err.number<>"0" then response.write Err.Description response.end end if For Each UpFolder In uploadFolder.SubFolders response.write "『"&upfolder.name&"』 | " next set uploadFolder=nothing end function function procGetFormat(sName) dim i,str procGetFormat=0 if instrRev(sName,".")=0 then exit function str=lcase(mid(sName,instrRev(sName,".")+1)) for i=0 to uBound(sFor,1) if str=sFor(i,0) then procGetFormat=sFor(i,1) exit for end if next end function %>