|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在上一讲中,我们学习了如何创建组件,使用了浏览器能力组件、File Access组件、AD Rotator组件和Content Linking组件,也知道了Server对象的CreateObject方式、MapPath方式和HTMLEncode方式。本讲将继承组件的学习。 一、 Email组件:NTS Collaboration Data Objects 我们在网上常常看到,许多站点均提供在线发信功能(即用表单实现Question提交,Support或信息反馈等等)或者给访问者发送确认信息。这一功能对个人主页来说是很难达到的,因为需要主页提供商额外的支持(我个人主页上的在线写信是用CGI写的,与ASP无关),这里就其原理举一简朴的例子: 特殊说明:本讲座所举的所有例子均在Windows NT4.0 Server+IIS(Internet Information Server)4.0上调试,但其中大部分也适用于Windows9.x+PWS。不过要好好学用ASP,最好再装一个Windows NT与Windows95/98并存(没装过不要怕,很轻易的,只要机器轻微好一点就行了,NT安装后能自动做成Win NT/Win9.x双启动)。 <% ‘wuf30.asp Dim Mail \\\'建立一个Email组件 Set Mail = Server.CreateObject("CDONTS.NewMail") \\\'发送Email Mail.Send "From@intldept.com","To@intldept.com","Subject","Body" Set Mail = Nothing %> 这是一个最简朴的例子,事实上,使用该组件,你可以发送纯文本格式邮件或者HTML超文本格式邮件,该组件也支持抄送(CC)和密件抄送(BCC),并且可以包含图片和附件,甚至还以可接收邮件,应该说功能还是比较强盛的。但我个人并不是很欣赏,因为要使用该组件,必须安装Windows NT Server和IIS4.0的SMTP服务(微软风格),并且该组件不支持POP3协议。因此假如使用该组件不能正常发送邮件,你可以打开Internet Server Manager看看Default SMTP Site是否已启动(Start)以及一些相关的设置。不过,假如你是一个微软迷,可去我的主页(http://wuf.bentium.net/)下载该组件的例程wuf31.asp和sendmail.asp自己研究。 二、 使用第三方组件 到现在为止,我们所介绍的组件均包含在IIS4.0中,你可以直接使用这些组件。除此之外,你还可从Microsoft IIS Resource Kit光盘中获取以下两个组件(或者去http://www.microsoft.com/iis碰碰运气看是否有下载): l Page Counter组件:网页计数器 l Permission Checker组件:网页存取权限确认组件 IIS4.0内置组件的介绍到这里就告一段落了,但ASP组件的学习还要继承,一方面是因为IIS4.0内置的组件很少,另一方面已提供的这些组件或许功能并不很强盛,适合你的需要。因此更大量的资源是网上现存的成百上千的第三方组件,它们有些是免费的,有些提供功能限制版或评估版,当然更多的要银子的(一个组件要三位数的$,有没有搞错!简直是拐弯抹角的“敲诈”),使用这些组件,足可以使你成为一个伪ASP高手,让你能迅速、方便地做出功能强盛的主页,不再有“巧妇难为无米之炊”的感叹。我们不妨通过几个例子来找一下这种感觉。 (一) 文件上传组件AspSmartUpload(免费) 先下载该组件:http://www.aspsmart.com/liblocal/download/EN/aspSmartUpload.zip,文件大小约100K(也可去我的站点下载)。下载解包后,共有三十多个文件,分别位于不同目录下,你可以参照其中的说明文件自己研究,这里仅举一个完整的例子说明如何使用第三方组件。 找到AspSmartUpload.dll和AspSmartUploadUtil.dll这两个文件,在Web服务器的命令提示符下分别用”regsvr32.exe aspsmartupload.dll”和”regsvr32.exe aspsmartuploadutil.dll”命令行来注册该组件(假如你是第一次使用Regsvr32.exe,可先将这两个DLL文件拷到Web服务器的“Winnt/System32”或“Windows/System”目录下),若注册成功,弹出的窗口中会有”succeeded”字样(注重:使用第三方组件前必须先注册,有的第三方组件采用安装方法,能自动注册,而更多的象这样,需要自己手工注册)。注册成功后,接下来就是写代码使用组件,该例由两个文件组成(注重测试时请勿使用中文文件名): wuf32.htm ?C 上传文件的前端Web页面(表单) <HTML> <style type="text/css"> <!-- input { font-family: "宋体", "Times New Roman"; font-size: 9pt; line-height: 16pt} --> </style> <BODY BGCOLOR="white"> 上传文件的Web页面(可上传文件的个数自己定义,但文件名中不能含中文) <HR> <FORM METHOD="POST" ACTION="wuf34.asp" ENCTYPE="multipart/form-data"> <!-- TEXT --> 用户名:<input TYPE="TEXT" name="myText" value=""><br> <!-- PASSWORD --> 口 令:<input TYPE="PASSWORD" name="myPASSWORD" value=""><br> <!-- HIDDEN --> <input TYPE="hidden" name="myHidden" value="hidden"><br> <!-- 文件 --> 文件1:<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR> 文件2:<INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR> 文件3:<INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR> 文件4:<INPUT TYPE="FILE" NAME="FILE4" SIZE="50"><BR> <INPUT TYPE="SUBMIT" VALUE="Upload"> </FORM> </BODY></HTML> 按“Upload”按钮,后台由文件wuf34.asp来处理(你也可下载更简朴的wuf33.asp): <HTML><BODY BGCOLOR="white"> 文件上传结果 : <HR> <% Dim mySmartUpload, item, value, file \\\' 先如下创建组件 Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") mySmartUpload.Upload \\\' 用 For Each 循环获取 From表单中每一项的值 For each item In mySmartUpload.Form For each value In mySmartUpload.Form(item) Response.Write(item & " = " & value & "<BR>") Next Next Response.Write "<Hr>" \\\' 上传文件数据 \\\' Response.Write("文件数目 =" & mySmartUpload.Files.Count &"<BR>") Response.Write("总字节 = " & mySmartUpload.Files.TotalBytes &" bytes<Br><Br>") Response.Write("文件清单: " & "<Br>") \\\' 对每一个文件 - 还有更简朴的方式, 见wuf33.asp For each file In mySmartUpload.Files If not file.IsMissing Then \\\'以原来的文件名存于 C:temp 下 file.SaveAs("c:temp" & file.FileName) Response.Write(file.FileName & " (" & file.Size & "bytes)<BR>") End If Next Set mySmartUpload = Nothing %> </BODY> </HTML> 关于该组件更多、更具体的用法、功能(如限制上传文件的类型、尺寸,上传至数据库,下载文件或数据库字段等等),你可自己去看样例或研究洋文帮助。假如觉得看E文太累,也可下载一个全国产的File Upload组件,里面有中文的帮助和样例,还是不错的,下载地址:http://www.chinaasp.com/program/fileup.zip。 (二) 图形组件:Dundas Pie Chart(饼状图) 先听听组件提供者是怎么说的:“闪光的性能,足以让人晕厥的高质量的图形,强盛、高速、无比的灵活性”,哇塞,吹牛赛过韦小宝,是不是这样,看看结果之一: 有了这样的饼状图,你也可以象新浪网相同搞调查了,吹得这么好的东西却是免费的,你还等什么,快快驾上你的慢猫去拉下来: (1)3DPieCSC.EXE:http://www.dundas.com/downloads/freeproducts/files/3DPieCSC.EXE (2)FPDocInst.exe:http://www.dundas.com/downloads/freeproducts/files/FPDocInst.exe 3DPieCSC.EXE中包括该组件,后者是说明文档,都是安装文件,我将它安装在服务器的“C:Inetpub3dPieCSC”目录下,该组件自带两个复杂无比的样例程序以展示它炫丽无比的性能,较难搞明白。这里举一个简朴实用的大众化例子: wuf36.htm,通过<IMG>标签调用ASP文件: <HTML><BODY> <IMG src="wuf37.asp"> </BODY></HTML> wuf37.asp,用来生成图形(与上面同理,请勿在代码中使用中文): <%@ Language=VBScript %> <% Option Explicit Dim objPieChart Set objPieChart = Server.CreateObject("Dundas.PieChartServer.1") \\\'先创建组件 \\\'设置工作目录 objPieChart.DirOutput = "C:Inetpub3dPieCSCSampleChart" \\\'设置模板文件所在目录 objPieChart.DirTemplate = "C:Inetpub3dPieCSCSampleTemplates" \\\'材质目录-你可以轻松的改变图形的材质和颜色 objPieChart.DirTexture = "C:Inetpub3dPieCSCSampleTextures" \\\'选择一个模板文件, 该模板文件可自己编辑或修改 objPieChart.LoadTemplate "PieInTheSky.cuc" \\\'图形标题 objPieChart.Title = "This is a Sample" \\\'增加各项目, 包括权重 标签 说明 objPieChart.AddData 40, "Item1:40%","China" objPieChart.AddData 30, "Item2:30%","USA" objPieChart.AddData 30, "Item3:30%","Other" \\\'输出结果为一图形, 可指定宽度和高度 objPieChart.SendJPEG 400,300 Set objPieChart = Nothing %> 诚实说,这个免费的东西还是不错的,就是它提供的例程太复杂了,让人不能一触即会。现在你可能要来一个举一反三,融会贯通,想怎样得到柱状图,的确是有这样的组件:ShotGraph,但是完全不需要搞这么复杂吗,你仅需预备一个柱状的图片(不会做!看到别人网页上有,另存一个不就搞定),利用HTML标记Weight、Height按比例拉伸和压缩就行了(<img src = bar.gif width = <%=变量%> height = 10>)。 此外,为了弥补本讲座开头负责任的简略,在此郑重向大家推荐两个Email组件: (1) aspSmartMail: http://www.aspsmart.com/liblocal/download/EN/aspSmartMail.zip,注重千万不要在代码中使用中文,不然你怎么也发不出一封信,详见例程wuf35.asp。 (2) W3 Jmail: http://download.dimac.net/jmail/jmail.exe。 (3) ChinaMail:http://wuf.bentium.net/,本人写的全中文Email组件。 对于组件的感情,我个人是很复杂和沉重的,IIS4.0内置组件确实太少,然则网上E文的组件很多不支持中文,使用起来实在不够爽,那么为什么不使用国产的组件呢,你去海内最好的http://www.chinaasp.com/就知道了,所列组件寥寥,令人寒心,那么只剩一条路了,那就是自己写(可一般人自己写得了吗?这是一个疑问)。我倒是很同意ChinaASP的呼吁,大概意思就是海内没有任何软件公司公开发表ASP组件,在ASP方面的书虽成吨,但品味不高。的确,当初我应邀写这个讲座时,市面上关于ASP的书还很少,但现在,忽然间出来很多,我还是建议你买外国人编的书,一来有光盘,二来确实舶来品总体上讲得好些,读起来象那么回事,也不死板。 最后给大家提供几个组件资源站点: (1) http://www.serverobjects.com/ (2) http://www.15seconds.com/ (3) http://www.activeserverpages.com/ (4) http://www.softartisans.com/ 返回类别: 教程 上一教程: 在指定的数据库上运行SQL语句的类 下一教程: 在ASP中如何创建动态表--调用如下SP_EXECUTE 您可以阅读与"ASP讲座之五:ASP组件"相关的教程: · ASP讲座之四:ASP内置组件 · ASP讲座之十:自己动手编写组件 · ASP讲座之二:读取通过表单发送的数据 · ASP讲座之七:ASP与数据库 · ASP讲座之六:ASP与数据库 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |