馮小東 蘭州資源環(huán)境職業(yè)技術學院 730021
基于Web的動態(tài)圖片管理系統(tǒng)的設計與實現(xiàn)
馮小東 蘭州資源環(huán)境職業(yè)技術學院 730021
本文基于校園網(wǎng)構建動態(tài)圖片管理網(wǎng)站,同時分析介紹了利用ASP和ACCESS構建圖片顯示動態(tài)網(wǎng)頁的幾種方法,以及分析了這幾種思路在實現(xiàn)過程中所運用到的處理方法。
ASP;ACCESS;圖片管理
校園信息化已成為校園建設及發(fā)展的主要手段,高校校園網(wǎng)的信息化建設更是與新時代的網(wǎng)絡信息化密不可分。由于學校網(wǎng)站建設需要,在學校現(xiàn)有的基礎上增設圖片管理系統(tǒng)。可以看到,校園圖片管理系統(tǒng)需求相對簡單,功能也相對單一,其核心主要是顯示圖片和分類管理,及相應預覽圖片的動態(tài)網(wǎng)頁,并且通過點擊預覽圖片和圖片相關鏈接夠查看該圖信息,因此,決定用ASP和ACCESS來構建網(wǎng)站。本文結合動態(tài)網(wǎng)站制作實例來對圖片上傳技術進行介紹,并且介紹了在實際應用中所遇到問題的解決方案,開發(fā)的實例是“校園網(wǎng)圖片管理系統(tǒng)”。
經(jīng)過分析,該系統(tǒng)需要設計的功能包括有:圖片上傳、限制上傳圖片大小、限制上傳圖片格式、圖片命名、管理瀏覽以及刪除圖片等。可以看到,網(wǎng)站功能的實現(xiàn)直接關系到數(shù)據(jù)庫的設計;因此,數(shù)據(jù)類型可以有兩種不同的選擇:OLE對象型或文本型。這也是本文下面要討論的核心問題,不同的數(shù)據(jù)類型將直接決定構建圖片顯示動態(tài)網(wǎng)頁的不同思路,這里把數(shù)據(jù)庫命名為Photo,表命名Imgbook。
OLE對象類型字段是鏈接和嵌入其它應用程序所創(chuàng)建對象的字段類型。在設計中采用OLE數(shù)據(jù)類型,photo字段就要鏈或嵌入圖片,通過OLE數(shù)據(jù)類型將圖片直接存入數(shù)據(jù)庫。文本型字段存放由漢字、字母和ASCII字符集中可打印字符組成的數(shù)據(jù)。如果要采用這種數(shù)據(jù)類型,photo字段將要存放的是圖片的存儲路徑。
圖片上傳文件到服務器文件夾下,一個圖片就是一個文件,然后與數(shù)據(jù)庫中的記錄對應起來。這種方法的缺點是保密性不好,如果服務器被登錄,就可以直接觀看圖片資料。將圖片存儲路徑存入數(shù)據(jù)庫,實質上就是圖片上傳到服務器指定目錄后,通過SQL語句向數(shù)據(jù)庫中添加記錄。而如果將圖片直接存入數(shù)據(jù)庫,一般是采用二進制數(shù)據(jù)方式存儲在OLE字段中。這樣就使數(shù)據(jù)庫變得臃腫,影響存儲速度。
第一,把圖片的存儲路徑存入數(shù)據(jù)庫。表中僅列出了需要說明的Imgbook表的記錄,其余省略。可以看到,因為Photo字段用了文本數(shù)據(jù)類型,所以表中存入的是圖片用文本表示的存儲路徑。如圖1。
第二,調用圖片,實現(xiàn)圖片顯示動態(tài)網(wǎng)頁功能,主要程序代碼如下:

經(jīng)過上述方式處理后,除圖片的存儲路徑作為動態(tài)頁圖顯示路徑的方式進行處理外,在實際應用中還涉及到分頁顯示的問題,主要代碼如下:
Rs.PageSize=20 ’設定PageSize屬性的值
Total=INT(RS.recordcount/20*-1) *-1 ‘計算可顯示頁面的總數(shù)
PageNo=Request(”pageno”)‘獲得當前的頁碼

圖1 數(shù)據(jù)庫Imgbook表格
RS.AbsolutePage=PageNo ‘設置數(shù)據(jù)集當前的頁碼
采用文本數(shù)據(jù)類型方法的缺點是保密性不好,如果破解網(wǎng)站密碼,就可以直接獲取服務器內部資料或對服務器進行攻擊。為了解決這個問題,可以在服務器上的IIS作如下設置:
(1)檢查WEB目錄是否有IUSR_*** (你機器名)這個用戶權限,或者檢查是否有GUESTS組權限(至少有讀取權限)。
(2)策略里禁用GUESTS組,默認IIS匿用戶均屬于該組。
(3)在2003IIS中需要手工同步密,如果修改了IUSR_***用戶密碼很可能引起ASP網(wǎng)頁無法運行,同時IIS-0UT組件無法啟動等原因,所以需要新建一個用戶為GUESTS組然后同步。
下面我們先討論通過這種思路實現(xiàn)動態(tài)網(wǎng)頁的方式與上一種的區(qū)別。
在ACCESS中使用了兩個關鍵的技術來保存圖形,一是b m p格式,二是OLE對象有78個字節(jié)的文件頭格式,如果要在ASP頁面中調用圖片就需要做一些特殊處理,需要調用如下代碼:

在實際應用的過程中,用OLE對象來存儲圖像會遇到一個問題,就是ACCESS數(shù)據(jù)膨脹的速度急劇加快,系統(tǒng)運行速度會越來越慢。因為OLE會為每一個圖像文件另外創(chuàng)建一個包含顯示信息的位圖文件;也就是說,如果添加一個1MB的圖像文件,那么實際占用的數(shù)據(jù)庫空間遠比lMB大。這些附加文件比原始文件的容量更大,數(shù)據(jù)庫會因此變得非常龐大,影響存儲和讀取速度。
本文就學校圖片管理系統(tǒng)實現(xiàn)上傳圖片功能做了比較分析,最后對這兩種方案進行總結:
使用文本數(shù)據(jù)類型的思路來建設圖片管理系統(tǒng),圖片是上傳到服務器指定文件夾,所以日后的數(shù)據(jù)維護上非常方便,可以直接在服務器上指定文件夾上對相應的圖片文件進行刪改,減輕了維護人員的工作負擔。即使不懂得后臺數(shù)據(jù)庫的人員也可以輕松實現(xiàn)。
在安全性上OLE對象數(shù)據(jù)類型方案較優(yōu)。即使他人知道服務器和數(shù)據(jù)庫服務器的密碼,仍無法直接觀看圖片。但其缺點也是明顯的,那就是圖片存取需要一個轉換的過程,技術實現(xiàn)較復雜。既影響瀏覽速度也對校園網(wǎng)維護人員要求較高。通過分析和討論可以看到,Photo字段采用文本型數(shù)據(jù)類型的方法要比采用OLE對象型數(shù)據(jù)類型的方法對于系統(tǒng)運行更優(yōu)。因此,在實際應用沒有把圖片直接存入ACCESS數(shù)據(jù)庫,而是采取一種記錄鏈接的方式來讓系統(tǒng)長期運行而仍然能夠保持快速響應。
[l] 李深,楊萬成.用ASP和ACCESS構片顯示動態(tài)網(wǎng)頁.科技資訊.2007.
[2] 湯代祿,韓建俊.AsP案例開發(fā)集錦.電子工業(yè)出版社.2006.4.
10.3969/j.issn.1001-8972.2010.11.043
馮小東(1974—),男,漢族,甘肅成縣人,講師,主要研究方向為Web開發(fā)、軟件工程、計算機教育研究。