5.3添加用户 体现这一功能的页面是adminadd.asp,超级管理员可通过该页面添加新的用户,新用户信息有:用户名、密码、确认的密码、用户级别、目录权限。按确定提交信息给服务器,按重置则清空所填信息,按返回转到用户管理主页面。体现这一功能的是模块是adminadd.asp,该模块首先会调用checklogin.asp,以判断用户是否登录和是否有权限,若没有,则给出提示。代码如下: copyright paper51.com
if notloginstatus or not popedom then paper51.com callshowmsg("你没有登录或者没有权限!","index.asp?ntime="&ntime) paper51.com response.end paper51.com
end if 内容来自www.paper51.com 若用户登录且具有权限,则可以添加新用户,包括用户名,密码,确认的密码,用户级别,目录权限。要求用户名不能为空或包含引号,密码不能为空,两次输入的密码必须一致,目录权限允许包含系统定义的非法字符。相关代码与用户编辑模块的一致。然后将用户信息传送给数据库。添加用户代码如下: paper51.com setrs=server.createobject("adodb.recordset") 内容来自论文无忧网 www.paper51.com sql="select * from userinfo whereusername='"&username&"'" 内容来自www.paper51.com
rs.opensql,conn,0,3 copyright paper51.com if not(rs.bof and rs.eof) then 内容来自www.paper51.com rs.close 内容来自www.paper51.com
setrs=nothing paper51.com
callcloseconn() 内容来自www.paper51.com
callshowmsg("对不起,用户“"&username&"”已经存在,请选择其它用户名!",selfname&"?username="&username) 内容来自www.paper51.com response.end paper51.com else http://www.paper51.com rs.addnew http://www.paper51.com rs("username")=username 内容来自www.paper51.com rs("password")=md5(password) 内容来自论文无忧网 www.paper51.com rs("grade")=grade 内容来自www.paper51.com rs("pathaccess")=pathaccess paper51.com rs.update http://www.paper51.com
rs.close copyright paper51.com setrs=nothing paper51.com
callcloseconn() http://www.paper51.com response.redirect"admin.asp?ntime="&ntime&"&editinfo="&server.URLEncode("添加用户“"& username & "”成功!") paper51.com end if http://www.paper51.com response.end 内容来自www.paper51.com 5.4文件管理 http://www.paper51.com
此模块的实现主要体现在fsoexplore.asp页面。主要可实现以下功能:目录的建立、删除、更名,文件的更名、建立、剪切、粘贴、复制、删除、上传、下载及编辑。 内容来自论文无忧网 www.paper51.com
5.4.1文件的建立、剪切、粘贴、复制、删除 内容来自www.paper51.com
由于ASP并没有内置专用的对象来访问服务器端的文件夹或文件,如果要访问服务器端的文件夹或文件,必须使用FileSystemObject服务器组件。然后,我们不能直接访问FileSystemObject服务器的集合、属性或方法。所以,首先得使用Server.Mappath方法将文件夹或文件的虚拟路径转换为实际路径,然后使用Server.CreateObject方法建立一个FileSystemObject服务器组件的对象实例,然后再通过此对象实例去访问其集合、属性或方法,以实现文件的建立、剪切、粘贴、复制、删除功能。相关方法格式如下: 内容来自www.paper51.com full_path=server.mappath(path)//获取文件的实际路径 内容来自论文无忧网 www.paper51.com setobj_fso=server.createobject("scripting.filesystemobject") copyright paper51.com
//建立FileSystemObject组件的实例obj_fso http://www.paper51.com obj_fso.createfile(full_path)//建立文件的方法 http://www.paper51.com obj_fso.deletefile(full_path)//删除文件的方法 http://www.paper51.com obj_fso.copyfilesource,destination,overwrite//复制文件的方法,可以将source指定的文件复制到 destination,若有同名文件,且 overwrite为true,表示将其覆盖,否则不覆盖。 copyright paper51.com 而剪切与粘贴是不可分的两个操作,实际为复制与删除的结合。 paper51.com
剪切操作,首先会判断文件是否存在,其实质是先将文件从源路径复制到目的路径,然后删除源文件。核心代码如下: 内容来自论文无忧网 www.paper51.com s_sourcefile=session("basepath")&"\"&a_files(i) http://www.paper51.com
s_targetfile=s_folderpath&"\"&a_files(i) 内容来自www.paper51.com
ifobj_fso.fileexists(s_sourcefile) then 内容来自www.paper51.com
obj_fso.copyfiles_sourcefile,s_targetfile,true http://www.paper51.com
obj_fso.deletefiles_sourcefile,true 内容来自论文无忧网 www.paper51.com else paper51.com n_errfile=n_errfile+1 copyright paper51.com end if 内容来自www.paper51.com 5.4.2文件编辑 http://www.paper51.com 主要体现在fsoedit.asp模块。该模块首先调用checklogin.asp检验用户是否登录以及是否有管理权限。然后连接数据库,从服务器端读取文件并进行编辑。核心代码如下: copyright paper51.com filepath=server.mappath(path) 内容来自论文无忧网 www.paper51.com setobj_fso=server.createobject("scripting.filesystemobject") copyright paper51.com ifobj_fso.fileexists(filepath) then 内容来自www.paper51.com setobj_file=obj_fso.opentextfile(filepath,2,false) paper51.com
obj_file.writefcontent paper51.com obj_file.close copyright paper51.com setobj_file=nothing paper51.com
response.write"<script language='javascript'>"&vbcrlf copyright paper51.com
response.write"<!--"&vbcrlf http://www.paper51.com response.write"window.history.go(-1);"&vbcrlf 内容来自www.paper51.com response.write"//-->"&vbcrlf 内容来自www.paper51.com response.write"</script>"&vbcrlf 内容来自论文无忧网 www.paper51.com else paper51.com response.write"<script language='javascript'>"&vbcrlf paper51.com response.write"<!--"&vbcrlf 内容来自论文无忧网 www.paper51.com
response.write"alert('找不到指定的文件,可能该文件已经被 http://www.paper51.com
删除');"&vbcrlf paper51.com response.write"window.close();"&vbcrlf copyright paper51.com response.write"//-->"&vbcrlf 内容来自www.paper51.com response.write"</script>"&vbcrlf http://www.paper51.com end if copyright paper51.com response.end 内容来自www.paper51.com end if http://www.paper51.com 5.4.3文件下载 copyright paper51.com 文件下载这一功能主要体现在download.asp模块,该模块调用downloadFile(strFile)过程,通过文件所在路径获得其物理路径,然后从物理路径下载文件。相关代码如下: paper51.com
calldownloadFile(Request("path")) 内容来自www.paper51.com function downloadFile(strFile) 内容来自www.paper51.com
dimstrFilename,s,fso,f,intFilelength copyright paper51.com strFilename= server.MapPath(strFile) copyright paper51.com Response.Buffer= True http://www.paper51.com Response.Clear http://www.paper51.com Sets = Server.CreateObject("ADODB.Stream") paper51.com s.Open paper51.com s.Type= 1 paper51.com onerror resume next copyright paper51.com Setfso = Server.CreateObject("Scripting.FileSystemObject") 内容来自论文无忧网 www.paper51.com
ifnot fso.FileExists(strFilename) then 内容来自www.paper51.com
Response.Write("<h1>Error:</h1>"& strFilename & " does not exist<p>") 内容来自论文无忧网 www.paper51.com Response.End copyright paper51.com endif 内容来自www.paper51.com
Setf = fso.GetFile(strFilename) 内容来自www.paper51.com intFilelength= f.size http://www.paper51.com s.LoadFromFile(strFilename) paper51.com
iferr then copyright paper51.com Response.Write("<h1>Error:</h1>" & err.Description & "<p>") copyright paper51.com
Response.End 内容来自论文无忧网 www.paper51.com endif paper51.com Response.AddHeader"Content-Disposition", "attachment; filename=" & f.name 内容来自论文无忧网 www.paper51.com Response.AddHeader"Content-Length", intFilelength copyright paper51.com Response.CharSet= "UTF-8" http://www.paper51.com Response.ContentType= "application/octet-stream" //bin类型 内容来自论文无忧网 www.paper51.com Response.BinaryWrites.Read copyright paper51.com Response.Flush http://www.paper51.com s.Close 内容来自www.paper51.com Set s = Nothing 内容来自www.paper51.com End Function copyright paper51.com |