Asp删除无效文件,我的代码错在哪了?请大侠帮忙
本帖最后由 xyciw 于 2012-12-21 15:32:56 编辑
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="conn.asp"-->
<%
'文件删除函数
function deletefile(filename)
if filename<>"" then
set fs1=server.CreateObject("scripting.filesystemobject")
if fs1.FileExists(filename) then
fs1.DeleteFile filename
end if
set fs1=nothing
end if
end function
function searchfile(fname)
'查找sys_about表
sql1="SELECT body from sys_about "
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,conn,1,1
if not rs1.eof then
do while not rs1.eof
if instr(rs1("body"),fname)>0 then
return true
exit do
exit function
end if
rs1.movenext
loop
end if
rs1.close
set rs1=nothing
'查找sys_news表
sql2="SELECT body,picurl from sys_news "
set rs2=server.createobject("adodb.recordset")
rs2.open sql2,conn,1,1
if not rs2.eof then
do while not rs2.eof
if instr(rs2("body"),fname)>0 then
return true
exit do
exit function
end if
if instr(rs2("picurl"),fname)>0 then
return true
exit do
exit function
end if
rs2.movenext
loop
end if
rs2.close
set rs2=nothing
end function
function bianli(path)
dim fso 'fso对象
dim objFolder '文件夹对象
dim objFiles '文件集合
dim objFile '文件对象
set fso=Server.CreateObject("Scripting.FileSystemObject")
on error resume next
set objFolder=fso.GetFolder(path)'创建文件夹对象
set objFiles=objFolder.Files
for each objFile in objFiles
if searchfile(objFile.name)=false then
Response.Write (Server.MapPath("\UploadFile"+ objFile.name)&"<br>")
deletefile(Server.MapPath("\UploadFile"+ objFile.name))
end if
next
set objFolder=nothing
set objSubFolders=nothing
set fso=nothing
end function
%>
<%
bianli(Server.MapPath("/")+"\UploadFile") '调用bianli()函数,这里是遍历当前目录下的图片文件
%>
<%conn.close
set conn=nothing
%>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Option Explicit
Response.CodePage=65001
Response.Charset="UTF-8"
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Dim fso,arr,sql,rs,i,arrpath,i_Total
If Request.QueryString("action")="dell" Then
set fso=Server.CreateObject("Scripting.FileSystemObject")
i_Total=cInt(Request.Form("id").count)
For i=1 To i_Total
arrpath=Server.MapPath("")&Request.Form("id")(i)
If fso.FileExists(arrpath) Then
fso.DeleteFile arrpath, True
Response.write "成功删除:"&arrpath&"<br/>"
End If
Next
set fso=Nothing
Response.End
End If
On Error Resume Next
Dim Db,ConnStr,Conn
'数据库地址设置,根据相应情况作更改,名称越复杂越好。
Db="/%$#&.mdb"
ConnStr="Provider=Microsoft.Jet.OleDb.4.0;Data Source="&Server.MapPath("/")&Db
Set Conn = Server.Createobject("adodb.connection")
Conn.open ConnStr
If Err Then
Err.Clear
Conn.Close:Set Conn=Nothing
Response.Write " 数据库连接出错,请检查连接字串。"
Response.End
End If
on error goto 0
'===先取出所有图片地址存储
Sub get_pic()
Response.write "所有图片地址:<textarea id='pics' style='width:100%;height:300px'>"
'查找【关于我们】的表
sql="SELECT content from ciw_about"
set Rs=server.createobject("adodb.recordset")
Rs.open sql,conn,1,1
do while not Rs.eof
Response.write get_src(Rs(0))
Rs.movenext
loop
Rs.close
set Rs=nothing
arr=split("news
[解决办法]
article
[解决办法]
pic
[解决办法]
soft
[解决办法]
flv","
[解决办法]
")
for i=0 to ubound(arr)
sql="SELECT pic_url,content from ciw_"&arr(i)
set Rs=server.createobject("adodb.recordset")
Rs.open sql,conn,1,1
do while not Rs.eof
Response.write get_src(Rs(1))
if Rs(0)<>"" then Response.write "
[解决办法]
"&Rs(0)
Rs.movenext
loop
Rs.close
set Rs=nothing
next
Response.write "</textarea>"
End Sub
Sub subfolder(path)
Dim objFolders,objFiles,folder
set fso=Server.CreateObject("Scripting.FileSystemObject")
Set objFolders=fso.GetFolder(path)
For Each folder In objFolders.SubFolders
Response.write "<div>"&folder&" All file:</div>"
Call subfolder(folder)
Next
For Each objFiles In objFolders.Files
arrpath="\Upfile"&Split(objFiles,"Upfile")(1)
Response.write "<input type='checkbox' name='id' value='"&arrpath&"' /> "&arrpath&"<br/>"
Next
set fso=nothing
End Sub
Function get_src(strng)
Dim regEx, Match, Matches,s_str
Set regEx = New RegExp
regEx.Pattern = " src=[""']?(.*?)[""' ]"
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(strng)
For Each Match in Matches ' 遍历 Matches 集合。
s_str=s_str&"
[解决办法]
"®Ex.Replace(Match.Value, "$1")
Next
get_src=s_str
End Function
Call get_pic() '===先取出所有图片地址存储
Response.write "<form action=""?action=dell"" method=""POST"" onsubmit=""return fun()"">"
Call subfolder(Server.MapPath("\Upfile")) '===取出指定目录下所有图片地址
Response.write "<input type=""submit"" value=""提交""></form>"
Conn.Close:Set Conn=Nothing
%>
<script type="text/javascript">
var pics=document.getElementById("pics").value.toLowerCase();
var input=document.getElementsByTagName("input");
for(var i= 0,l=input.length;i<l;i++){
if(pics.indexOf(input[i].value.toLowerCase())!=-1){
input[i].disabled=true;
}else{
input[i].checked=true;
}
}
function fun(){
if(confirm("确定要删除选择的文件?注意删除后不可恢复!")){
return true;
}else{
return false;
}
}
</script>