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
%> 展开
现在的情况是值可以删除文章,单个删除和批量删除都可以删除文章,但是不可以删除图片,我估计是循环出问题了,嵌套不对!我只想实现的是当文章列表选择多选时,能删除选择的文章,已经文章里面的图片,选单个的时候也可以,忘高手耐心看看,帮帮忙!小弟先献上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
%> 展开
5个回答
展开全部
首先,查看了一下,代码,循环是没有问题的,我觉得出问题肯定是出自 DoDelFile()函数!!这样试试吧,你在 oRs.Close:Set oRs=Nothing后面这里输出 sPathFile的值看看
response.write server.mappth(sPathFile)
response.end() '记住这里一定要结束输出,不然又删除文章了!
,如果路径是和你图片目录一样的话,就说明是你的程序问题,如果不对就自己改改路径,比如:server.mappth("Images/"&sPathFile)就是输出的c:\Inetpub\wwroot\imgages\的目录。
祝你成功吧!小女子只能帮这么点了!
response.write server.mappth(sPathFile)
response.end() '记住这里一定要结束输出,不然又删除文章了!
,如果路径是和你图片目录一样的话,就说明是你的程序问题,如果不对就自己改改路径,比如:server.mappth("Images/"&sPathFile)就是输出的c:\Inetpub\wwroot\imgages\的目录。
祝你成功吧!小女子只能帮这么点了!
展开全部
'删除该文章下的所有图片
Conn.Execute("delete from Article where id="&id(i)&"")
你这句只是删除了存放图片路径的记录,而实际上图片并没有真正存放在数据库中,数据库中只是存放了图片的路径。所以你不单要删除记录,还要用FSO删除实际的图片才行。
Conn.Execute("delete from Article where id="&id(i)&"")
你这句只是删除了存放图片路径的记录,而实际上图片并没有真正存放在数据库中,数据库中只是存放了图片的路径。所以你不单要删除记录,还要用FSO删除实际的图片才行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'删除文件
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()这个函数就行了
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()这个函数就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询