07第七章 SERVER对象与服务器端文件存取.docx
《07第七章 SERVER对象与服务器端文件存取.docx》由会员分享,可在线阅读,更多相关《07第七章 SERVER对象与服务器端文件存取.docx(20页珍藏版)》请在冰点文库上搜索。
07第七章SERVER对象与服务器端文件存取
第七章SERVER对象与服务器端文件存取
Server对象是专门为处理服务器上的特定任务而设计的,它提供了对服务器上的方法和属性的访问,通过调用这些方法和属性的设置,可以允许拥护使用服务器上的许多功能,如可以取得服务器运行环境的功能,但最重要的功能还是可以让拥护使用服务器中的AtiveX组件。
1-1Server对象提供的属性及方法
说明:
Server对象提供了服务器端最基本的属性及方法。
1-2执行指定的ASP程序----Server.Execute方法
语法:
Server.Execute(path)
用途:
这个方法是IIS5.0新增的功能,用途类似程序语言中的函数调用,也就是说,您可以在ASP程序中使用Server.Execute(path)方法调用Path指定的ASP程序,待被调用的程序执行完毕之后再返回原来的程序,继续执行接下来的指令。
范例:
Server.Execute(“page.asp”)‘执行page.asp后再返回原来的程序
第一个范例:
<%Response.write“调用Execute方法之前”%>
<%Server.Execute(“page2.asp”)%>‘执行page2.asp后会再返回
<%Response.write“调用Execute方法之后”%>
这是page1.asp
---------------------------------------------------------------------------------------------------
<%Response.write“这是page2.asp执行结果”%>
这是page2.asp
由于Server.Execute方法具有函数调用功能,我们可以利用这个功能编写可以重复执行的代码片段,然后调用即可。
1-3转移控制权至其它ASP程序------Server.Transfer方法
语法:
Server.Transfer(path)
用途:
这个方法也是IIS5.0新增功能,用途是将目前ASP程序的控制权转移至path指定的ASP程序,即使转移之后的程序已经执行完毕,控制权后权仍不会返回原来的程序。
第二个范例
第一个范例:
<%Response.write“调用Execute方法之前”%>
<%Server.Transfer(“page2.asp”)%>‘执行page2.asp后会再返回
<%Response.write“调用Execute方法之后”%>
这是page1.asp
---------------------------------------------------------------------------------------------------
<%Response.write“这是page2.asp执行结果”%>
这是page2.asp
Server.Transfer与Response.Redirect的区别
他们都是网页导向。
有何区别?
<%response.writerequest.servervariables(“url”)%>
导向页面url.asp
<%response.redirect(“url.asp”)%>
<%server.transfer(“url.asp”)%>
1-4字符串编码-----Server.HTMLEncode和Server.URLEncode方法
Server对象提供了Server.HTMLEncode和Server.UELEncode可以进行字符串编码,其中Server.HTMLEncode(string)方法可以将string进行编码,使它不会被浏览七解释为HTML语法。
范例:
Response.Write”)>
此时浏览器收到的HTML编译后的结果使<p>
因此在画面上显示为
相反的,Server.URLEncode(string)方法可以将String进行编码,以放入QueryString返回服务器。
范例:
vote=<%=server.URLEncode(“李炎恢”)%>
其中username=%C0%EE%D1%D7%BB%D6是QueryString的第一笔数据,而%C0%EE%D1%D7%BB%D6字符串,就是“李炎恢”3个字经过编码的结果。
事实上,为了避免被服务器拒绝或者造成错误,返回服务器的字符串(尤其是中文或特殊字符)最好先经过编码,而且编码的方式就是使用URLEncode方法。
<%
response.writeserver.URLEncode("李炎恢")
%>
1-5将虚拟路径转换为实际路径---Server.MapPath方法
在大部分的时候,我们通常是使用程序的虚拟路径,但由于ASP要求我们在存取文件夹、文件或数据库时必须使用实际路径,所以在遇到这种情况的时候,我们可以使用Server.MapPath(path)方法,将Path指定的虚拟路径转换为实际路径。
语法:
Server.MapPth(path)
用途:
将Path指定的虚拟路径转换为实际路径
范例:
Server.MapPath(“page.asp”)‘找出page.asp的实际路径
Server.MapPath(“../”)‘找出父目录的实际路径
<%response.write“父目录为”&%>
<%response.write“现在目录为”&server.mappath(“./”)%>
<%response.write“根目录为”&server.mappath(”/”)%>
<%response.write“网页的实际路径为”&server.mappath(“path.asp”)%>
1-6使用外挂对象----Server.CreateObject方法
到目前为止,我们所介绍的都是ASP内置的对象,而实际上,这些ASP对象的应用时有限的,倘若要设计出更多元化的功能,您还得学会使用服务器组件,也就是外挂对象。
语法:
Server.CreateObject(component)
用途:
建立服务器组件的实例
范例:
Server.CreateObject(“Scripting.FileSystemObject”)
举例来说,如果我们要在服务器端读写文件,那么我们得先使用Server对象得CreateObject方法建立一个FileSystemObject服务器组件得对象实例.
Dimfso
Setfso=server.createobject(“scripting.filesystemobject”)
其中Set是VBScript关键字,用来建立对象实例,fso是这个对象实例的名称,“scripting.filesystemobject”是filesystemobject服务器组件登陆在Registry的ID。
1-7存取服务器端的文件夹和文件
ASP并没有内置专用的对象来存取服务器端的文件夹与文件,若要存取服务器端的文件夹和文件,必须使用FileSystemObject服务器组件,您不能直接存取FileSystemObject服务器组件的集合、属性或方法,而是得先使用Server.CreateObject方法建立一个FileSystemObject服务器组件得对象实例,然后再通过此对象实例取存取其集合、属性或方法。
1-8检查指定的磁盘、文件夹或文件是否存在
在进行磁盘、文件夹或文件的读写之前,我们都必须先确定磁盘、文件夹或文件是存在的,否则将产生错误信息。
我们可以分别使用FileSystemObject对象的DriveExists(Path)、FolderExists(Path)和FileExists(Path)方法来检查磁盘、文件夹或文件是否存在。
<%
dimfso
setfso=server.createobject(“scripting.filesystemobject”)
iffso.driveexists(“c:
”)then
response.write“c:
磁盘是存在的!
”
else
response.write“c:
磁盘是不存在的!
”
endif
setfso=nothing
%>
磁盘的检查!
<%
dimfso
setfso=server.createobject(“scripting.filesystemobject”)
iffso.folderexists(server.mappath(“\web”))then
response.write“web这个文件夹是存在的!
”
else
response.write“web这个文件夹是不存在的!
”
endif
setfso=nothing
%>
文件夹的检查!
<%
dimfso
setfso=server.createobject(“scripting.filesystemobject”)
iffso.fileexists(server.mappath(“index.asp”))then
response.write“web这个文件夹是存在的!
”
else
response.write“web这个文件夹是不存在的!
”
endif
setfso=nothing
%>
文件的检查!
\\
程序解释
1.首先要建立一个FileSystemObject对象实例,热闹后将这个实例指派给变量fso.
2.使用Driveexists方法取检查c:
磁盘是否存在。
3.使用FolderExists方法取检查web文件夹是否存在。
FolderExists方法的参数必须是实际路径,所以在第10行的语句中必须使用Server.MapPath方法将虚拟路径转换为实际路径。
4.使用FileExists方法取检查index.asp文件是否存在。
5.在程序最后,我们使用了Setfso=Nothing释放了对象实例,以免占用服务器的内存空间。
1-9文件夹的建立、移动、重新命名、删除与复制
1.建立文件夹
语法:
fso.createfolder(foldername)
用途:
FileSystemObject对象的CreateFolder方法可以建立一个foldername文件夹,而且参数Foldername必须使用实际路径。
范例:
fso.Creat4eFolder(Server.Mappath(“\web”))
<%
dimfso
setfso=server.createobject(“scripting.filesystemobject”)
fso.createfolder(server.mappath(“\web\new”))
setfso=nothing
%>
2.移动、重新命名文件夹
语法:
fso.MoveFolderSource,Destination
用途:
FileSystemObject对象的MoveFolder方法可以将Source指定的文件夹移动到Destination,而且参数Source、Destination必须使用实际路径。
范例:
fso.MoveFolderServer.MapPath("\web"),Server.MapPath("\koko\move")
<%
dimfso
setfso=server.createobject("scripting.filesystemobject")
iffso.folderexists(server.mappath("\folder1"))then
fso.movefolderserver.mappath("\folder1"),server.mappath("\web")
else
response.write"folder1文件夹不存在无法进行移动!
"
endif
setfso=nothing
%>
3.删除文件夹
语法:
fso.DeleteFolderPath.Force
用途:
FileSystemObject的DeleteFolder方法可以删除path指定的文件夹;Force为布尔值,默认为False,不删除只读文件夹,若要采用默认值,可省略不写,若要删除只读文件夹,Force的值要设置为True;参数path必须使用实际路径。
范例:
fso.DeleteFolderServer.mapPth("\web")'删除非只读文件夹web
<%
dimfso
setfso=server.createobject("scripting.filesystemobject")
iffso.folderexists(server.mapPath("\web"))then
fso.deletefolderserver.mapPath("\web")
else
response.write"web件夹不存在无法进行删除"
endif
%>
这个程序只能非只读文件夹,若要删除只读文件夹,必须改写fso.deletefolderserver.mappath(“\web”),True否则会出现”没有使用权限”的错误信息
4.复制文件夹
语法:
fso.CopyFolderSource,Destination
用途:
FileSystemObject对象的CopyFolder方法可以将source指定的文件夹复制到Destination,而且参数Soure\Destination必须使用实际路径.
范例:
fso.copyfolderserver.mappath(“\web”),server.mappath(“\koko\myce”)
<%
dimfso
setfso=server.createobject(“scripting.filesystemobject”)
iffso.folderexists(server.mappath(“\web”))then
fso.copyfolderserver.mappath(“\web”),server.mappath(“\koko\myce”)
else
response.write“web文件夹不存在无法进行复制”
endif
setfso=nothing
%>
1-10文件的建立、移动、重命名、删除与复制
1.建立新文件
语法:
fso.CreateTextFile(Filename,Overwrite,Unicode)
用途:
FileSystemObject对象的CreateTextFile方法可以建立文字文件,并返回一个TextStream对象实例;Filename为文字文件的名称(必须使用实际路径);Overwrite为布尔值,若值为True,表示如存在着同名文件,便将其覆盖,否则布覆盖;Unicode为布尔值,若值为True,表示为Unicode文本文件,否则为ASCII文本文件;Overwrite和Unicode的默认值皆为Flase,若要采用默认值,可省略不写。
<%
dimfso
setfso=server.createobject(“scripting.filesystemobject”)
fso.createtextfile(server.mappath(“\web\index.asp”))
%>
2.移动、重新命名文件
语法:
fso.MoveFileSource,Destination
用途:
FileSystemObject对象的MoveFile方法将Source指定的文件移动到Destination中,而且参数Source、Destination必须使用实际路径。
范例:
fso.movefileserver.mappath(“\index.asp”),server.mappath(“\web\kokoro.asp”)
<%
DimFSO
SetFSO=Server.CreateObject("Scripting.FileSystemObject")
IfFSO.FileExists(Server.MapPath("\web\index.asp"))Then
FSO.MoveFileServer.MapPath("\web\index.asp"),
Server.MapPath("\koko\kokoro.asp")
Else
Response.Write"index.asp文件不存在无法进行移动"
EndIf
SetFSO=Nothing
%>
3.删除文件
语法:
fso.DeleteFilepath,force
用途:
FileSystemObject的DeleteFile方法可以删除Path指定的文件;Force为布尔值,默认为False,不删除只读文件,若要采用默认值,可省略不写,若要删除制度文件,Force的值要设置为True;参数path必须使用实际路径。
范例:
fso.deletefileserver.mappath(“\index.asp”)‘删除非只读文件
fso.deletefielserver.mappath(“\删除只读文件”)‘删除只读文件
<%
DimFSO
SetFSO=Server.CreateObject("Scripting.FileSystemObject")
IfFSO.FileExists(Server.MapPath("\web\index.asp"))Then
FSO.DeleteFileServer.MapPath("\web\index.asp")
Else
Response.Write"index.asp文件不存在无法进行删除"
EndIf
SetFSO=Nothing
%>
4.复制文件
语法:
fso.CopyFileSource,Destination,Overwrite
用途:
FileSystemObject对象的CopyFile方法可以将source指定的文件复制到Destination,若有同名文件,且Overwrite的值为True,表示将其覆盖,否则不覆盖。
范例:
fso.CopyFileserver.mappath(“\index.asp”),server.mappath(“\koko\kokoro.asp”)
<%
DimFSO
SetFSO=Server.CreateObject("Scripting.FileSystemObject")
IfFSO.FileExists(Server.MapPath("\kokoro.asp"))Then
FSO.CopyFileServer.MapPath("\kokoro.asp"),Server.MapPath("\web\index.asp"),true
Else
Response.Write"kokoro.asp文件不存在无法进行复制"
EndIf
SetFSO=Nothing
%>
1-11文件的打开、读取与写入
1.打开文件
方法一:
使用FileSystemObject对象的OpenTextFile方法
语法:
fso.OpenTextFile(Filename,Iomode,Create,Format)
用途:
FileSystemObject对象的OpenTextFile方法可以打开Filename指定的文字文件,并传回一个TextStream对象实例;Iomode为文本文件的打开方式,1表示只读,2表示可写(清楚文字文件的原始内容),3表示附加到文本文件的后面(不清除文本文件的原始内容),默认值为1;Create表示当文本文件不存在时,是否要加以建立,默认值为False;Format为文字文件的格式,1-表示Unicode文本文件,0表示ASCII文件,-2表示采用系统默认值,这个参数通常不会用到。
范例:
Dimfso,ts‘以只读模式打开index.txt文件,若文件不存在,便建立
setfso=Server.CreateObject(“Scripting.FileSystemObject”)
setts=fso.OpenTextFile(Server.MapPath(“index.txt”),1,true)
方法二:
使用File对象的OpenAsTextStream方法
语法:
objfile.OpenAsTextStream(Iomode,Format)
用途:
File对象的OpenAsTextStream方法可以返回代表文件的TextStream对象案例;Iomode为文件的打开方式,1表示只读,2表示可写,3表示附加到文本文件的后面,默认值为1;Format为文本文件的格式,-1表示Unicode文本文件,A