标题:[求助]"删除所选(复选框)"时怎样才能同时删除数据库记录及相关文件 ...
只看楼主
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
if isArray(idAry)=false Or isArray(fAry)=false Then
把上面这段判断语句改成下面的。
if instr(id,"|")>0 Or instr(filename,"|")>0 Then
2007-10-03 20:18
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 
一个文件时,没什么变化,此问题依旧;
两个文件以上,还出现另一错误:

错误类型:
Microsoft JET Database Engine (0x80040E14)
无效的垂直条使用 在查询表达式 'id=103|104|' 中。
/upload/filedel.asp, 第 17 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

网页:
GET /upload/filedel.

[此贴子已经被作者于2007-10-3 20:24:58编辑过]


          人人为我,我为人人!
2007-10-03 20:22
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
if isArray(idAry)=false Or isArray(fAry)=false Then
把上面这段判断语句改成下面的。
if instr(id,"|")=0 Or instr(filename,"|")=0 Then
2007-10-03 21:35
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 

等着了,再试试


          人人为我,我为人人!
2007-10-03 21:37
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 

上面的问题解决,随带的又有一个问题:

只有一个文件时,选中删除成功了。
但传两个以上文件,只选一个文件,删除失败,提示:程序出现错误,可能提交了非法参数或数据;全选或选中两个以上文件删除成功。


[此贴子已经被作者于2007-10-3 22:02:51编辑过]


          人人为我,我为人人!
2007-10-03 21:44
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 

辛苦了,版主


          人人为我,我为人人!
2007-10-03 21:44
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 

继续等待版主的出现,期待问题的圆满解决!


          人人为我,我为人人!
2007-10-04 08:54
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 
以下是某论坛的类似效果的一段代码,看能不借鉴一下,我整不懂,只因我太菜!

'删除所选
Sub DelOptFile
Dim FileName,FSO,Folder,Files,Upname,Temp,i,S
On Error Resume Next
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If Err Then
Goback"","操作失败,空间不支持FOS文件读写!。"
err.Clear
Exit Sub
End If
FileName=Request("ID")
If FileName="" Then GoBack"","请先选择项目。":Exit Sub
Temp=Split(FileName,",")
For i=0 To uBound(Temp)
BBS94KK.execute("Delete * From [KK_UpFile] Where FileName='"&Trim(Temp(i))&"'")
Next
Set Folder=fso.Getfolder(server.MapPath(BBS94KK.Info(36)))
Set files=folder.files
For Each Upname In files
If instr(FileName,Upname.name)>0 then
FSO.DeleteFile(Server.MapPath(TopicFile&Upname.name))
End if
Next
Set Folder=nothing
Set Files=nothing
Set Fso=nothing
S="成功删除了所选的上传文件。"
BBS94KK.NetLog "操作后台_"&S
Suc"",S,"?"
End Sub

[此贴子已经被作者于2007-10-4 9:02:56编辑过]


          人人为我,我为人人!
2007-10-04 09:01
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 
以下是文件列表代码,版主看看:

Sub UploadFile
Dim strPageInfo,arr_Rs,i,P,FileType
Response.Write"<form name='kk' method='POST' action='?Action=DelOptFile'>"
Response.Write"<div class='mian'><div class='top'>用户文件上传记录</div>"
Set P = New Cls_PageView
P.strTableName = "[KK_UpFile]"
P.strFieldsList = "FileID,FileName,userName,FileType,FileSize,UpTime,Hits"
P.strPrimaryKey = "FileID"
P.strOrderList = "FileID desc"
P.intPageNow = Request("page")
P.intPageSize = 25
P.strCookiesName = "UpFile"'cookies名称
P.InitClass
Arr_Rs = P.arrRecordInfo
strPageInfo = P.strPageInfo
Set P = nothing
If IsArray(Arr_Rs) Then
Response.Write"<table class='Stable' border='0' cellpadding='3' cellspacing='0' ><tbody><tr><th width='5%'>选择</th><th width='40%'>上传的文件</th><th width='10%'>类型</th><th width='15%'>上传用户</th><th width='18%'>上传日期</th><th width='12%'>大小</th></tr>"
For i = 0 to UBound(Arr_Rs, 2)
If I mod 2=0 Then Response.Write"<tr>" else Response.Write"<tr bgcolor='#E4EEF1'>"
Response.Write"<td align='center'><input type='checkbox' name='ID' value='"&Arr_rs(1,i)&"' /><td>"
FileType=Lcase(Split(Arr_rs(1,i),".")(ubound(Split(Arr_rs(1,i),"."))))
If Instr("|"&BBS94KK.Info(34)&"|","|"&FileType&"|")>0 Then Response.Write"<div style='float:right;'>下载:"&Arr_rs(6,i)&"次</div>"
Response.Write"<a href='"&BBS94KK.Info(36)&"/"&Arr_rs(1,i)&"' target='_blank'>"&Arr_rs(1,i)&"</a></td>"&_
"<td align='center'><img src='pic/FileType/"&Arr_rs(3,i)&".gif' /></td><td align='center'>"&Arr_rs(2,i)&"</td><td align='center'>"&Arr_rs(5,i)&"</td><td align='center'>"&Arr_rs(4,i)&"</td></tr>"
Next
Response.Write"</tbody></table><div class='bottom'><input type=checkbox name=chkall value=on onClick='CheckAll(this.form)'> 全选&nbsp;&nbsp;<input class='button' value='删除所选' type='button' onclick=""if(confirm('删除后将不能恢复!您确定要删除吗?'))form.submit()"" /></div><div class='divtr2'>"&strPageInfo&"</div>"
Else
Response.Write"<div class='bottom'>没有上传文件的记录</div>"
End If
Response.Write"</div></form>"
End Sub
'记取帖子数据
Sub Delnouse
Dim go
go=Request("go")
If go="ok" Then
LoginTxt "正在读取数据,时间可能会很长"
Dim Alltable,i,temp
AllTable=Split(BBS94KK.BBSTable(0),",")
For i=0 To uBound(AllTable)
Set Rs=BBS94KK.Execute("Select Content From [KK_Bbs"&AllTable(i)&"]")
do while not rs.eof
Temp=Temp&FileList(rs(0))
rs.movenext
loop
rs.close
Next
ShowTable"清理无效上传文件 第二步","<form method=POST action='?Action=delall'><input name='files' type='hidden' value='"&temp&"'> 说明:此操作将删除没有在帖子上连接的无用文件。<br><input name='Go' type='radio' value='move' checked> 移动到<font color=red>UploadFile/Del/</font>目录中(建议,为防止误删除,查看无错后再删除这个目录即可)<br><input name='Go' type='radio' value='del'> 直接从空间删除 <hr /><input value='确 定' class='button' type='submit' /></form><script>document.getElementById('abc').style.display='none';</script>"
Else
ShowTable"清理无效上传文件 第一步","说明:检测在帖子上没有显示或连接的无用上传文件。<br />此操作将可能大量消耗服务器资源,建议暂时关闭论坛或在深夜人少时进行。<br />检测读取过程请不要刷屏或点击。<hr /><li>第一步:<a href='?Action=delnouse&go=ok'>开始检测</a></li>"
End If
End Sub

它好像是通过文件名的调名删除数据库记录等

          人人为我,我为人人!
2007-10-04 10:02
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
昨天晚上有事,耽误楼主一晚很抱歉
DelFile SavePath,request("filename")
DelDBFile "id="&request("id"),conn
今天调试出来了,上面是原来代码里的两句
改成
DelFile SavePath,Replace(request("filename"),"|","")
DelDBFile "id="&Replace(request("id"),"|",""),conn
2007-10-04 10:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-174777-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.209126 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved