以前在這里也曾經有一些文章談到了在asp中生成動態圖表的問題,但那些文章中所談到的一些方法都有某些方面的限制,如需要在客戶端安裝office2000或安裝OWC,有些則可能在Intranet中使用時沒什么問題,但在通過Internet訪問的時候,就可能出現無法正常工作的現象(這主要和SQL Server的安全設置有關)。那么,我們如何來避免這些問題呢?有一個很好的方法,就是將在ASP中生成的圖表轉換成圖片文件保存在服務器上,這樣用戶最終看到的是GIF圖片格式的圖表,我想現在的任何一種瀏覽器在觀看GIF圖片的時候都沒什么問題吧。:)也許唯一可能的問題就是如何對這些生成的臨時圖片文件的處理問題,關于這個問題在最后我們會討論。 下面我們會用一個具體的實例來說明這種方法。程序的測試環境為: NT4.0(SP5)+IIS4.0+SQL Server7.0+IE5.0,要運行下面的ASP程序,請將下面的代碼Copy,保存到你的一個虛擬目錄中,在這個虛擬目錄中建立一個子目錄tmp(你可能修改代碼中的路徑以符合自己的路徑),在IIS中設置read權限即可,注意了,在NT上你必須設置此tmp目錄對IUSR_servername用戶至少有Change的權限。建立一個pubs的DSN指向SQL Server的pubs數據庫。 以下是代碼: chart.asp <% Function ExportChartToGIF(cspace) Dim fso Dim sFilePath Dim sFileName
最后說一下如何處理臨時的圖片文件 在ExportChartToGIF漢書中你可以看到如下的代碼: Session("TC:" & sFilePath & sFileName) = sFilePath & sFileName 我們將產生的圖片文件路徑保存在session中,然后在Session_OnEnd中添加如下的代碼: Set fsoTemp = CreateObject("Scripting.FileSystemObject") for each imagefile in Session.Contents if left(imagefile,3) = "TC:" then fsoTemp.DeleteFile mid(imagefile,4), True end if next set fsoTemp=nothing