日期:2014-05-16 浏览次数:20870 次
<%
'前面数据库连接语句...
dim id,idlist,idarr,nid
if isempty(trim(request("chkid"))) then '这里的chkid相当于你的文章或者产品id.
response.write "<SCRIPT language=JavaScript>alert('非法请求,您未选择删除项!');"
response.write"this.history.back(-1);></SCRIPT>"
response.end
else
idlist=trim(request("chkid")) '取得上一个页面传过来的待删除id值
if instr(idlist,",")>0 then 'instr函数用于判断上一个页面传过来的id数量,其值大于0,就表示是批量选择
idarr=split(idlist) '构建id数组。
for i = 0 to ubound(idarr) '开始遍历,以id数组的最大个数为循环次数
nid=cint((idarr(i)))
call deleteannounce(nid) '循环删除每个id值的新闻以及图片的函数。
next
else '如果不是批量,只有一个id值,就表示只删除一笔
call deleteannounce(idlist) '直接调用删除函数。
end if
end if
conn.close
set conn=nothing
response.write "<SCRIPT language=JavaScript>alert('删除成功!');"
response.write"this.location.href='news_list.asp';</SCRIPT>"
response.end
sub deleteannounce(did) '用于删除数据(包括数据库记录和附件)的函数定义
dim rs,sql,picstr
set rs=server.createobject("adodb.recordset")
sql="select D_SavePathFileName from news where news_id="&did
rs.open sql,conn,1,1
picstr=rs("D_SavePathFileName")
rs.close
set rs=nothing
if picstr<>"" then
picstr=replace(picstr,"/","\")
Set FObject=Server.CreateObject("Scripting.FileSystemObject")'建立对象
if instr(picstr,"
------解决方案--------------------
")>0 then '如果是多张图片,就循环删除
dim picArr
picArr=split(picstr,"
------解决方案--------------------
")
for i=0 to ubound(picArr)
if Fobject.FileExists(Server.MapPath(picArr(i))) then '判断文件是否存在
Fobject.deleteFile server.mapPath(picArr(i))
end if
next
else '如果是单张图片,就直接判断删除。
if Fobject.FileExists(Server.MapPath(picstr)) then '判断文件是否存在
Fobject.deleteFile server.mapPath(picstr)
end if
end if
set FObject=nothing
end if
sql="delete from news where news_id="&(did) '删除新闻的数据。
conn.execute sql
sql1="delete from newspl where ssnews="& did '删除相关的评论。
conn.execute sql1
if err.Number<>0 then
err.clear
response.write "删 除 失 败 !<br>"
end if
End sub
conn.close
set conn=nothing
%>