ASP 删除文章的同时删除文章中图片!高手进来帮忙修改一下!

数据库里面有个字段D_SavePathFileName,装的是Images/UploadFile/201055161633831.jpg|Images/UploadFil... 数据库里面有个字段D_SavePathFileName,装的是Images/UploadFile/201055161633831.jpg|Images/UploadFile/20105516163352.jpg|Images/UploadFile/201055176733831.jpg所有上传图片的路径
现在的情况是值可以删除文章,单个删除和批量删除都可以删除文章,但是不可以删除图片,我估计是循环出问题了,嵌套不对!我只想实现的是当文章列表选择多选时,能删除选择的文章,已经文章里面的图片,选单个的时候也可以,忘高手耐心看看,帮帮忙!小弟先献上50分了!如果测试正确再加50

<%
' 删除指定的文件
Sub DoDelFile(sPathFile)
'On Error Resume Next
Dim oFSO
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFile(Server.MapPath(sPathFile))
Set oFSO = Nothing
End Sub

Id=Request("Id")
If Id="" Then
Response.Write("<script>alert('删除操作失败:请选择需要删除的信息!');</script>")
Else
Id=Split(Id,",")
For i=0 to UBound(Id)
set oRs=SerVer.CreateObject("Adodb.recordset")
sSql = "SELECT D_SavePathFileName FROM "&data&" WHERE ID="&id(i)&""
oRs.Open sSql, Conn, 0, 1
If Not oRs.Eof Then
asSavePathFileName = oRs("D_SavePathFileName")
Else
asSavePathFileName=""
End If
oRs.Close
Set oRs=Nothing

' 把带"|"的字符串转为数组
Dim aSavePathFileName
aSavePathFileName = Split(asSavePathFileName, "|")
Dim n
For n = 0 To UBound(aSavePathFileName)
' 按路径文件名删除文件
Call DoDelFile(aSavePathFileName(n))
Next
'删除该文章下的所有图片
Conn.Execute("delete from Article where id="&id(i)&"")
Next
%>
展开
 我来答
yezi275344015
2010-05-17 · TA获得超过202个赞
知道答主
回答量:50
采纳率:0%
帮助的人:79.7万
展开全部
首先,查看了一下,代码,循环是没有问题的,我觉得出问题肯定是出自 DoDelFile()函数!!这样试试吧,你在 oRs.Close:Set oRs=Nothing后面这里输出 sPathFile的值看看
response.write server.mappth(sPathFile)
response.end() '记住这里一定要结束输出,不然又删除文章了!
,如果路径是和你图片目录一样的话,就说明是你的程序问题,如果不对就自己改改路径,比如:server.mappth("Images/"&sPathFile)就是输出的c:\Inetpub\wwroot\imgages\的目录。
祝你成功吧!小女子只能帮这么点了!
lzp4881
2010-05-05 · TA获得超过2394个赞
知道大有可为答主
回答量:2825
采纳率:0%
帮助的人:2978万
展开全部
'删除该文章下的所有图片
Conn.Execute("delete from Article where id="&id(i)&"")
你这句只是删除了存放图片路径的记录,而实际上图片并没有真正存放在数据库中,数据库中只是存放了图片的路径。所以你不单要删除记录,还要用FSO删除实际的图片才行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unw123
2010-05-10 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:137万
展开全部
If Id="" Then
Response.Write("<script>alert('删除操作失败:请选择需要删除的信息!');</script>")
Else
sSql = "SELECT D_SavePathFileName FROM "&data&" WHERE ID in ("&Id&")"由于你有批量删除,所以表达式可以改成这样省事很多
If Not oRs.Eof Then
do while not rs.eof '逐个循环删除
asSavePathFileName = split(oRs("D_SavePathFileName"),"|")
for i = 0 to Ubound(asSavePathFileName)
DoDelFile(asSavePathFileName(i))
next
loop
End if
end if

Sub DoDelFile(sPathFile)
'On Error Resume Next
Dim oFSO
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
if oFSO.fileexists(server.mappath(sPathFile)) then '判断文件是存在
oFSO.DeleteFile(Server.MapPath(sPathFile))
end if
Set oFSO = Nothing
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万年老粽子
2010-05-05 · TA获得超过3422个赞
知道小有建树答主
回答量:231
采纳率:50%
帮助的人:142万
展开全部
'删除文件
Private Sub DeleteFile(fname)
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Server.MapPath(fname)) Then
Set f = fso.GetFile(Server.MapPath(fname))
f.delete()
Set f = Nothing
End If
Set fso = Nothing
End Sub
Conn.Execute("delete from Article where id="&id(i)&"")
你这句只是删除了存放图片路径的记录,而实际上图片并没有真正存放在数据库中,数据库中只是存放了图片的路径。所以你不单要删除记录,还要用FSO删除实际的图片才行。

Server.MapPath(fname))
在这里放上你图片的真实路径也就是你存入数据库D_SavePathFileName字段,
这是图片的实际所在

执行 DeleteFile()这个函数就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
检妤eh
2010-05-05
知道答主
回答量:39
采纳率:0%
帮助的人:9.5万
展开全部
duei
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式