开发学院WEB开发ASP ASP 3.0高级编程(二十九) 阅读

ASP 3.0高级编程(二十九)

 2001-03-21 09:51:28 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹妞嬪孩顐芥慨姗嗗厳缂傛氨鎲稿鍫罕闂備礁婀遍搹搴ㄥ窗閺嶎偆涓嶆い鏍仦閻撱儵鏌i弴鐐测偓鍦偓姘炬嫹闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸弫鎾绘偐閹绘帞鈧參姊哄Ч鍥х仼闁诲繑鑹鹃悾鐑藉蓟閵夛妇鍘甸梺瑙勵問閸犳牠銆傛總鍛婄厱閹艰揪绱曟牎闂侀潧娲ょ€氫即鐛幒妤€绠f繝闈涘暙娴滈箖鏌i姀鈶跺湱澹曟繝姘厵闁绘劦鍓氶悘杈ㄤ繆閹绘帞澧涚紒缁樼洴瀹曞崬螖閸愬啠鍓濈换娑樼暆婵犱胶鏁栫紓浣介哺閹瑰洤鐣烽幒鎴僵闁瑰吀鐒﹂悗鎼佹⒒娴g儤鍤€闁搞倖鐗犻獮蹇涙晸閿燂拷濠电姷鏁告慨鐑藉极閸涘﹥鍙忔い鎾卞灩缁狀垶鏌涢幇闈涙灈鐎瑰憡绻冮妵鍕箻鐎靛摜鐣奸梺纭咁潐濞茬喎顫忕紒妯肩懝闁逞屽墮宀h儻顦查悡銈夋煏閸繃鍋繛宸簻鎯熼梺瀹犳〃閼冲爼宕濋敃鈧—鍐Χ閸℃鐟愰梺鐓庡暱閻栧ジ宕烘繝鍥у嵆闁靛骏绱曢崢顏堟⒑閹肩偛鍔楅柡鍛⊕缁傛帟顦寸紒杈ㄥ笚濞煎繘鍩℃担閿嬵潟闂備浇妗ㄩ悞锕傚箲閸ヮ剙鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘闂傚倸鍊搁崐鎼佸磹妞嬪孩顐芥慨姗嗗厳缂傛氨鎲稿鍫罕闂備礁婀遍搹搴ㄥ窗閺嶎偆涓嶆い鏍仦閻撱儵鏌i弴鐐测偓鍦偓姘炬嫹  闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柤鍝ユ暩娴犳氨绱撻崒娆掑厡缂侇噮鍨堕妴鍐川閺夋垹鍘洪悗骞垮劚椤︻垶宕¢幎鑺ョ厪闊洦娲栨牎闂佽瀵掗崜鐔奉潖閾忓湱纾兼俊顖氭惈椤秴顪冮妶鍡楀闁告鍥х叀濠㈣泛谩閻斿吋鐓ラ悗锝庡厴閸嬫挻绻濆顓涙嫼閻熸粎澧楃敮鎺撶娴煎瓨鐓曢柟鎯ь嚟閳藉鏌嶇紒妯荤叆妞ゎ偅绻堥幊婊呭枈濡顏归梻鍌欑閹诧紕绮欓幋锔哄亼闁哄鍨熼弸鏃堟煛閸愶絽浜剧紓浣虹帛缁嬫挻绂掗敃鍌氱<婵﹩鍓﹂悗鎶芥⒒娴e摜锛嶇紒顕呭灦楠炴垿宕堕鍌氱ウ闁诲函缍嗘禍鏍绩娴犲鐓欓梺顓ㄧ畱婢ь垱銇勯弬鍨偓瑙勭┍婵犲洦鍊锋い蹇撳閸嬫捇寮借濞兼牕鈹戦悩瀹犲闁稿被鍔庨幉姝岀疀濞戞ḿ鐤呴梺鍦檸閸犳寮查幖浣圭叆闁绘洖鍊圭€氾拷
核心提示:6.3.2 SA-FileUP组件 在很多Web网站上,一个常规要求是,ASP 3.0高级编程(二十九),服务器接受客户机发送的文件的能力如何?在IIS 4.0里,Microsoft提供了一个名为Posting Acceptor组件完成这项工作,它就是ADO,在讨论这个问题之前,IIS 5.0和asp 3.0的标准安装
6.3.2 SA-FileUP组件
    在很多Web网站上,一个常规要求是,服务器接受客户机发送的文件的能力如何?在IIS 4.0里,Microsoft提供了一个名为Posting Acceptor组件完成这项工作,IIS 5.0和asp 3.0的标准安装中没有该组件,如果安装Site Server ExPRess的话,则需要包含这一组件。可以从Microsoft Web网站http://www.microsoft.com/windows/software/webpost/post_accept.htm上下载该组件。
    然而,很多人发现Posting Acceptor组件在功能上有局限性且很难编程。现在一个流行的替代品是来自Software Artisans的SA-FileUP组件。与Posting Acceptor组件(仅是ISAPI型过滤器)不同,SA-FileUP组件是一个真正的ActiveX DLL服务器组件,容易集成到ASP网页中。这意味着可以使用别的ASP页面或组件上使用的相同的有关设定页面安全保护及限制用户访问的技术。该组件也可在MTS/COM+的环境中上运行。
    使用SA-FileUP组件的教程可在http://www.activeserverpages.com/upload/站点上找到,所以这里只给出了结果。本章的示例中包含了使用该组件的示例页面(在Chapter06目录下的SAFileUP子目录中),可用来了解如何使用该组件,有必要的话可从Software Artisans网站http://www.softartisans.com/上下载SA-FileUP的拷贝。
    使用SA-FileUP组件
    SA-FileUP组件的示例页面创建了一个简单的页面,包含一个FileUpload元素和一个按钮,并使用了HTML的INPUT元素,如图6-28所示:

图6-28 使用SA-FileUp组件的示例页面
<FORM ACTION="safileup_response.asp"
           ENCTYPE="MULTipART/FORM-DATA" METHOD="POST">

<INPUT TYPE="FILE" NAME="FILE1">

<INPUT TYPE="SUBMIT" NAME="SUB1" VALUE="Upload File">

</FORM>
用户提交窗体时,其中的内容传送给了服务器,并且ASP页面创建了一个组件实例,并且开始向服务器上传信息,以后组件返回一系列描述上传的文件的数据,如图6-29所示:

图6-29 使用SA-FileUP组件的结果
SA-FileUP组件读取文件并把它以标准的磁盘文件或二进制的数据库数据的形式暂存在服务器上。有了它,就能用ASP控制上传过程、限制上传文件的大小,甚至删除上传文件,也能动态地改变其名字和上传文件的位置。

6.3.3 RegEx注册表访问组件
    Microsoft IIS 4.0提供的一个示例组件能够访问服务器上的系统注册表。这个功能有助于检查诸如安装的软件的版本,或者检查IIS和操作系统使用的各种参数。
    在IIS 5.0中取消了这个组件,但如果需要这个功能,可以从其他商用版本中获得。RegEx组件是其中之一,能够访问本地机器注册表的任何部分(假如允许当前用户访问)。在ASP页面的匿名访问中,当前用户是IUSR_machinename帐户。
1. RegEx组件的成员
RegEx组件提供了四个读写注册表的方法和一个访问内部组件版本信息的方法,如表6-11所示。全部信息和文档随RegEx组件提供,其测试版本可以从http://www.stonebroom.com/下载。其附带的示例页面包含在本书提供的示例中,然而你需要自己下载组件本身。
表6-11 RegEx 组件方法及说明
方 法
说 明

GetRegValue(RegistryHive,SubKeyString)
从注册表中返回给定的子键的缺省值,如果其值不能访问的话,则返回一个空字符串

SetRegValue(RegistryHive,SubKeyString,
NewValue)
在给定的子键中,创建或更新“缺省”值,把数据类型设置成Reg_SZ(字符串)。如果更新成功的话,返回True;否则,返回False

GetRegValueEx(RegistryHive,SubKeyString,
ValueMane,ValueType)
从特定的子键中返回被命名的值,用返回数值的数据类型,更新方法的最后一个参数所指定的变量。如果数值不能访问的话,则返回一个空字符串,并且REG_ERROR作为数据类型

SetRegValueEx(RegistryHive,SubKeyString,
ValueName,NewValue,ValueType)
在给定的子键中,创建或更新被命名的数值,把数据类型设置为方法的最后一个参数指定的类型data_type。如果更新成功的话,返回True;否则返回False

GetInternalVersionNumber()
返回组件的内部版本号,如果是一个测试版本,返回值之中也包含这些信息

2. 使用RegEx组件
RegEx组件提供了一个用Visual Basic编写的示例程序,可用来试验其中包含的方法,实例程序使用RegEx组件,允许对系统注册表的任何部分以所支持的数据类型之一或以缺省的字符串数据类型读写数据,如图6-30所示。在进行任何更新之前会显示一个警告以防止意外操作。

图6-30 使用RegEx组件的示例程序
另外还有一个比较简单的ASP实例,可显示Web服务器注册表中的一些数据,并且允许读和设置一个“测试”子键。可以修改这个页面,在你自己的应用程序中使用时没有限制。图6-31所示的是在NT4和IIS 4.0上运行的结果。

图6-31 使用RegEx组件的另一示例的结果
要记住,改变注册表中的数值可能导致系统不正常地工作,编辑注册表内容这前应该备份注册表文件。

6.4 小结
    本章讨论了ASP如何利用服务器组件增加其他组件所不能提供的特性,也考虑了服务器组件和其他类型的ASP对象(如ASP内置的对象和在脚本运行期库中的对象)的区别。
    在研究由ASP 3.0和IIS 5.0提供的可安装组件之后,介绍了三个提供常规要求的功能的商用组件,也列出了几个可以从Web上下载的通用组件,其中有一些是免费的或者是共享/测试版本。
    然而,至今我们还有一个很重要的组件没有涉及到,它就是ADO。在讨论这个问题之前,先来讨论另一个基本问题:错误处理和程序调试。


Tags:ASP 高级 编程

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接