明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP知識(shí)講座5

[摘要]ASP組件(二)在上一講中,我們學(xué)習(xí)了如何創(chuàng)建組件,使用了瀏覽器能力組件、File Access組件、AD Rotator組件和Content Linking組件,也知道了Server對(duì)象的Crea...

ASP組件(二)

在上一講中,我們學(xué)習(xí)了如何創(chuàng)建組件,使用了瀏覽器能力組件、File Access組件、AD Rotator組件和Content Linking組件,也知道了Server對(duì)象的CreateObject方法、MapPath方法和HTMLEncode方法。本講將繼續(xù)組件的學(xué)習(xí)。

一、 Email組件:NTS Collaboration Data Objects
我們?cè)诰W(wǎng)上經(jīng)?吹,許多站點(diǎn)均提供在線發(fā)信功能(即用表單實(shí)現(xiàn)Question提交,Support或信息反饋等等)或者給訪問者發(fā)送確認(rèn)信息。這一功能對(duì)個(gè)人主頁來說是很難達(dá)到的,因?yàn)樾枰黜撎峁┥填~外的支持(我個(gè)人主頁上的在線寫信是用CGI寫的,與ASP無關(guān)),這里就其原理舉一簡(jiǎn)單的例子: 
特別說明:本講座所舉的所有例子均在Windows NT4.0 Server+IIS(Internet Information Server)4.0上調(diào)試,但其中大部分也適用于Windows9.x+PWS。不過要好好學(xué)用ASP,最好再裝一個(gè)Windows NT與Windows95/98并存(沒裝過不要怕,很容易的,只要機(jī)器稍微好一點(diǎn)就行了,NT安裝后能自動(dòng)做成Win NT/Win9.x雙啟動(dòng))。
<% 'wuf30.asp
Dim Mail
'建立一個(gè)Email組件
Set Mail = Server.CreateObject("CDONTS.NewMail")
'發(fā)送Email
Mail.Send "From@intldept.com","To@intldept.com","Subject","Body"
Set Mail = Nothing
%>
這是一個(gè)最簡(jiǎn)單的例子,事實(shí)上,使用該組件,你可以發(fā)送純文本格式郵件或者HTML超文本格式郵件,該組件也支持抄送(CC)和密件抄送(BCC),并且可以包含圖片和附件,甚至還以可接收郵件,應(yīng)該說功能還是比較強(qiáng)大的。但我個(gè)人并不是很欣賞,因?yàn)橐褂迷摻M件,必須安裝Windows NT Server和IIS4.0的SMTP服務(wù)(微軟風(fēng)格),并且該組件不支持POP3協(xié)議。因此如果使用該組件不能正常發(fā)送郵件,你可以打開Internet Server Manager看看Default SMTP Site是否已啟動(dòng)(Start)以及一些相關(guān)的設(shè)置。不過,如果你是一個(gè)微軟迷,可去我的主頁(http://wuf.bentium.net/)下載該組件的例程wuf31.asp和sendmail.asp自己研究。

二、 使用第三方組件
到現(xiàn)在為止,我們所介紹的組件均包含在IIS4.0中,你可以直接使用這些組件。除此之外,你還可從Microsoft IIS Resource Kit光盤中獲取以下兩個(gè)組件(或者去http://www.microsoft.com/iis碰碰運(yùn)氣看是否有下載):
l Page Counter組件:網(wǎng)頁計(jì)數(shù)器
l Permission Checker組件:網(wǎng)頁存取權(quán)限確認(rèn)組件
IIS4.0內(nèi)置組件的介紹到這里就告一段落了,但ASP組件的學(xué)習(xí)還要繼續(xù),一方面是因?yàn)镮IS4.0內(nèi)置的組件很少,另一方面已提供的這些組件或許功能并不很強(qiáng)大,適合你的需要。因此更大量的資源是網(wǎng)上現(xiàn)存的成百上千的第三方組件,它們有些是免費(fèi)的,有些提供功能限制版或評(píng)估版,當(dāng)然更多的要銀子的(一個(gè)組件要三位數(shù)的$,有沒有搞錯(cuò)!簡(jiǎn)直是拐彎抹角的"敲詐"),使用這些組件,足可以使你成為一個(gè)偽ASP高手,讓你能快速、方便地做出功能強(qiáng)大的主頁,不再有"巧婦難為無米之炊"的感嘆。我們不妨通過幾個(gè)例子來找一下這種感覺。

(一) 文件上傳組件AspSmartUpload(免費(fèi))
先下載該組件:http://www.aspsmart.com/liblocal/download/EN/aspSmartUpload.zip,文件大小約100K(也可去我的站點(diǎn)下載)。下載解包后,共有三十多個(gè)文件,分別位于不同目錄下,你可以參照其中的說明文件自己研究,這里僅舉一個(gè)完整的例子說明如何使用第三方組件。
找到AspSmartUpload.dll和AspSmartUploadUtil.dll這兩個(gè)文件,在Web服務(wù)器的命令提示符下分別用"regsvr32.exe aspsmartupload.dll"和"regsvr32.exe aspsmartuploadutil.dll"命令行來注冊(cè)該組件(如果你是第一次使用Regsvr32.exe,可先將這兩個(gè)DLL文件拷到Web服務(wù)器的"Winnt/System32"或"Windows/System"目錄下),若注冊(cè)成功,彈出的窗口中會(huì)有"succeeded"字樣(注意:使用第三方組件前必須先注冊(cè),有的第三方組件采用安裝方式,能自動(dòng)注冊(cè),而更多的象這樣,需要自己手工注冊(cè))。注冊(cè)成功后,接下來就是寫代碼使用組件,該例由兩個(gè)文件組成(注意測(cè)試時(shí)請(qǐng)勿使用中文文件名):
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頁面(可上傳文件的個(gè)數(shù)自己定義,但文件名中不能含中文)
<HR>
<FORM METHOD="POST" ACTION="wuf34.asp" ENCTYPE="multipart/form-data">
<!-- TEXT -->
用戶名?lt;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"按鈕,后臺(tái)由文件wuf34.asp來處理(你也可下載更簡(jiǎn)單的wuf33.asp):
<HTML><BODY BGCOLOR="white">
文件上傳結(jié)果 : 
<HR>
<%
Dim mySmartUpload, item, value, file 
' 先如下創(chuàng)建組件
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

mySmartUpload.Upload

' 用 For Each 循環(huán)獲取 From表單中每一項(xiàng)的值
For each item In mySmartUpload.Form
For each value In mySmartUpload.Form(item)
Response.Write(item & " = " & value & "<BR>")
Next
Next

Response.Write "<Hr>"
' 上傳文件數(shù)據(jù)
' Response.Write("文件數(shù)目 =" & mySmartUpload.Files.Count &"<BR>")
Response.Write("總字節(jié) = " & mySmartUpload.Files.TotalBytes &" bytes<Br><Br>")
Response.Write("文件清單: " & "<Br>")

' 對(duì)每一個(gè)文件 - 還有更簡(jiǎn)單的方法, 見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>
關(guān)于該組件更多、更詳細(xì)的用法、功能(如限制上傳文件的類型、尺寸,上傳至數(shù)據(jù)庫,下載文件或數(shù)據(jù)庫字段等等),你可自己去看樣例或研究洋文幫助。如果覺得看E文太累,也可下載一個(gè)全國(guó)產(chǎn)的File Upload組件,里面有中文的幫助和樣例,還是不錯(cuò)的,下載地址:http://www.chinaasp.com/program/fileup.zip。

(二) 圖形組件:Dundas Pie Chart(餅狀圖)
先聽聽組件提供者是怎么說的:"閃光的性能,足以讓人暈厥的高質(zhì)量的圖形,強(qiáng)大、高速、無比的靈活性",哇塞,吹牛勝過韋小寶,是不是這樣,看看結(jié)果之一:
有了這樣的餅狀圖,你也可以象新浪網(wǎng)一樣搞調(diào)查了,吹得這么好的東西卻是免費(fèi)的,你還等什么,快快駕上你的慢貓去拉下來:
(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中包括該組件,后者是說明文檔,都是安裝文件,我將它安裝在服務(wù)器的"C:\Inetpub\3dPieCSC"目錄下,該組件自帶兩個(gè)復(fù)雜無比的樣例程序以展示它炫麗無比的性能,較難搞明白。這里舉一個(gè)簡(jiǎn)單實(shí)用的大眾化例子:
wuf36.htm,通過<IMG>標(biāo)簽調(diào)用ASP文件:
<HTML><BODY>
<IMG src="wuf37.asp">
</BODY></HTML>
wuf37.asp,用來生成圖形(與上面同理,請(qǐng)勿在代碼中使用中文):
<%@ Language=VBScript %>
<% Option Explicit
Dim objPieChart
Set objPieChart = Server.CreateObject("Dundas.PieChartServer.1") '先創(chuàng)建組件

'設(shè)置工作目錄
objPieChart.DirOutput = "C:\Inetpub\3dPieCSC\Sample\Chart\" 
'設(shè)置模板文件所在目錄
objPieChart.DirTemplate = "C:\Inetpub\3dPieCSC\Sample\Templates\" 
'材質(zhì)目錄-你可以輕松的改變圖形的材質(zhì)和顏色
objPieChart.DirTexture = "C:\Inetpub\3dPieCSC\Sample\Textures\" 

'選擇一個(gè)模板文件, 該模板文件可自己編輯或修改
objPieChart.LoadTemplate "PieInTheSky.cuc"
'圖形標(biāo)題
objPieChart.Title = "This is a Sample"

'增加各項(xiàng)目, 包括權(quán)重 標(biāo)簽 說明
objPieChart.AddData 40, "Item1:40%","China"
objPieChart.AddData 30, "Item2:30%","USA"
objPieChart.AddData 30, "Item3:30%","Other"

'輸出結(jié)果為一圖形, 可指定寬度和高度
objPieChart.SendJPEG 400,300 

Set objPieChart = Nothing
%>
老實(shí)說,這個(gè)免費(fèi)的東西還是不錯(cuò)的,就是它提供的例程太復(fù)雜了,讓人不能一觸即會(huì)。現(xiàn)在你可能要來一個(gè)舉一反三,融會(huì)貫通,想怎樣得到柱狀圖,的確是有這樣的組件:ShotGraph,但是完全不需要搞這么復(fù)雜嗎,你僅需準(zhǔn)備一個(gè)柱狀的圖片(不會(huì)做!看到別人網(wǎng)頁上有,另存一個(gè)不就搞定),利用HTML標(biāo)記Weight、Height按比例拉伸和壓縮就行了(<img src = bar.gif width = <%=變量%> height = 10>)。

此外,為了彌補(bǔ)本講座開頭負(fù)責(zé)任的簡(jiǎn)略,在此鄭重向大家推薦兩個(gè)Email組件:
(1) aspSmartMail: http://www.aspsmart.com/liblocal/download/EN/aspSmartMail.zip,注意千萬不要在代碼中使用中文,不然你怎么也發(fā)不出一封信,詳見例程wuf35.asp。
(2) W3 Jmail: http://download.dimac.net/jmail/jmail.exe。
(3) ChinaMail:http://wuf.bentium.net/,本人寫的全中文Email組件。

對(duì)于組件的感情,我個(gè)人是很復(fù)雜和沉重的,IIS4.0內(nèi)置組件確實(shí)太少,然則網(wǎng)上E文的組件很多不支持中文,使用起來實(shí)在不夠爽,那么為什么不使用國(guó)產(chǎn)的組件呢,你去國(guó)內(nèi)最好的http://www.chinaasp.com/就知道了,所列組件寥寥,令人寒心,那么只剩一條路了,那就是自己寫(可一般人自己寫得了嗎?這是一個(gè)疑問)。我倒是很同意ChinaASP的呼吁,大概意思就是國(guó)內(nèi)沒有任何軟件公司公開發(fā)表ASP組件,在ASP方面的書雖成噸,但品味不高。的確,當(dāng)初我應(yīng)邀寫這個(gè)講座時(shí),市面上關(guān)于ASP的書還很少,但現(xiàn)在,突然間出來很多,我還是建議你買外國(guó)人編的書,一來有光盤,二來確實(shí)舶來品總體上講得好些,讀起來象那么回事,也不死板。

最后給大家提供幾個(gè)組件資源站點(diǎn):
(1) http://www.serverobjects.com/ 
(2) http://www.15seconds.com/ 
(3) http://www.activeserverpages.com/ 
(4) http://www.softartisans.com/ 



標(biāo)簽:ASP知識(shí)講座5