程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> ASP講座之五:ASP組件(二)

ASP講座之五:ASP組件(二)

編輯:ASP入門教程
在上一講中,我們學習了如何創建組件,使用了浏覽器能力組件、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 "[email protected]","[email protected]","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的書還很少,但現在,突然間出來很多,我還是建議你買外國人編的書,一來有光盤,二來確實舶來品總體上講得好些,讀起來象那麼回事,也不死板。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved