基于SQL Server的Asp.net圖片存儲技術(shù)
互聯(lián)網(wǎng)時代的到來,使得各種各樣的基于互聯(lián)網(wǎng)的應(yīng)用系統(tǒng)層出不窮,其中絕大部分應(yīng)用系統(tǒng)都會用到圖片數(shù)據(jù),需要將圖片在用戶界面顯示出來。這里介紹一種實現(xiàn)方法,把圖片存儲到某個文件夾內(nèi).然后按要求顯示。具體實現(xiàn)步驟是把圖片路徑等記錄的附加信息存儲到數(shù)據(jù)庫中,而真正的圖片文件存儲到某個文件夾。該方法是一種很好的解決方案。
2 圖片的處理方式
對于圖片的處理有兩種方式:①圖片數(shù)據(jù)以文件形式直接存儲在硬盤,在數(shù)據(jù)庫中保存該圖片的記錄附加信息(路徑,文件名,注釋…);②圖片直接存儲在數(shù)據(jù)庫中。這兩種方式各有利弊。圖片文件存入數(shù)據(jù)庫中便于管理與維護(hù),而存入硬盤可能會因為不小心刪除圖片文件,而使得數(shù)據(jù)不一致:但圖片放在數(shù)據(jù)庫中不便于修改編輯,同時會引起數(shù)據(jù)庫讀取數(shù)據(jù)時的I/O消耗,而放在硬盤上則不會引起這個問題。所以對于小文件,建議放在數(shù)據(jù)庫中便于管理,而對于大文件,且不可放在數(shù)據(jù)庫中,否則數(shù)據(jù)庫表會大量產(chǎn)生數(shù)據(jù)文件的碎片。
3 圖片存儲方法
該系統(tǒng)使用ASP.NET和SQL Server數(shù)據(jù)庫實現(xiàn)圖片的存儲。將圖片存放到硬盤指定的目錄下,將圖片的相對存儲路徑和其他附屬信息存儲到數(shù)據(jù)庫中。開發(fā)平臺使用的語言為VB,數(shù)據(jù)庫訪問技術(shù)為AD0.NET擻據(jù)訪問機(jī)制采用的是AD0.NET里的OleDb機(jī)制。
3.1 數(shù)據(jù)庫表的建立
對于整個圖片管理系統(tǒng)中的圖片存儲,需建立圖片內(nèi)容表(myimg),其結(jié)構(gòu)如表1所示。
3.2 后臺數(shù)據(jù)庫的配置
圖片管理系統(tǒng)使用SQL Server 2000數(shù)據(jù)庫。代碼如下:
3.3 添加圖片頁面
進(jìn)入頁面即可添加圖片,存儲圖片路徑到數(shù)據(jù)庫。
3.3.1 頁面示例
添加圖片頁面如圖1所示。
3.3.2 圖片的上傳方法
單擊如圖1所示的“瀏覽”按鈕,就會彈出windows操作系統(tǒng)的“選擇文件”對話框,選擇好合適的圖片以后,單擊“打開”即可,如圖2所示。
[!--empirenews.page--] 然后單擊“上傳文件”按鈕,如果上傳成功,就會給出如圖3所示的提示信息,以及該圖片的相對路徑。
將上傳圖片的相對路徑復(fù)制到“圖片路徑”文本框中.并且輸入圖片標(biāo)題、圖片說明,選擇圖片所屬的欄目,最后單擊“提交”按鈕,如圖4所示。
如果信息成功寫入數(shù)據(jù)庫,就會給出添加圖片成功提示信息。
3.4 頁面用到的數(shù)據(jù)庫信息
添加新圖片頁面使用了數(shù)據(jù)庫中的myimg表,將用戶輸入圖片的合法信息寫到表中,包含myimg表的所有字段。
4 結(jié)語
一個好的解決方案能夠使系統(tǒng)具有更大的適用性。如果將圖片直接存儲到數(shù)據(jù)庫中,由于圖片數(shù)據(jù)不斷增加.?dāng)?shù)據(jù)庫就會不斷變大,而將圖片數(shù)據(jù)以文件形式直接存儲到硬盤.在數(shù)據(jù)庫中保存該圖片的記錄附加信息(路徑,文件名,注釋…),就會使數(shù)據(jù)庫存儲的信息相對減少,從而提高數(shù)據(jù)庫的訪問性能。