欢迎光临
我们一直在努力

ASP讲座之五:ASP组件(二)-ASP教程,组件开发

建站超值云服务器,限时71元/月

在上一讲中,我们学习了如何创建组件,使用了浏览器能力组件、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 – 上传文件的前端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:\inetpub\3dpiecsc”目录下,该组件自带两个复杂无比的样例程序以展示它炫丽无比的性能,较难搞明白。这里举一个简单实用的大众化例子:
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:\inetpub\3dpiecsc\sample\chart\”       
设置模板文件所在目录
objpiechart.dirtemplate = “c:\inetpub\3dpiecsc\sample\templates\”
材质目录-你可以轻松的改变图形的材质和颜色
objpiechart.dirtexture = “c:\inetpub\3dpiecsc\sample\textures\”   

选择一个模板文件, 该模板文件可自己编辑或修改
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的书还很少,但现在,突然间出来很多,我还是建议你买外国人编的书,一来有光盘,二来确实舶来品总体上讲得好些,读起来象那么回事,也不死板。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP讲座之五:ASP组件(二)-ASP教程,组件开发
分享到: 更多 (0)