ASP組件(二)

來源:互聯網
上載者:User
在上一講中,我們學習了如何建立組件,使用了瀏覽器能力組件、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的書還很少,但現在,突然間出來很多,我還是建議你買外國人編的書,一來有光碟片,二來確實舶來品總體上講得好些,讀起來象那麼回事,也不死板。

    最後給大家提供幾個組件資來源站點點:
(1) http://www.serverobjects.com/
(2) http://www.15seconds.com/
(3) http://www.activeserverpages.com/  
(4) http://www.softartisans.com/


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.