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