2010-03-31 166 views
-2

我想將上傳的圖像保存到數據庫。現在我的問題是:圖像保存在數據庫中

  1. 什麼應該是數據類型的SQL Server 2000的圖像? a。圖片 b。 varbinary

  2. 什麼是在數據庫中保存圖像的代碼?

  3. 如何從數據庫檢索圖像並顯示?

請參閱我的任何教程或指導。或者如果你可以請與我分享。

在此先感謝。

+5

是否確定要這麼做?這裏是一些親/討論:http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay – 2010-03-31 11:00:31

+0

是的,我做。感謝分享。 – Termedi 2010-03-31 11:02:53

+3

謹慎解釋你的決定? – 2010-03-31 11:37:01

回答

0

我寫了this article回到這個問題。它應該幫助你#2和#3。它使用MySQL,但基本相同,只需用MSSQL調用替換MySQL調用即可。

至於#1,我會選擇明顯的選擇:「圖像」。
但是,我不是100%確定兩者之間的差異。它只是似乎很明顯:)

編輯,根據this,看來該image數據類型已經過時了。它將在未來版本中刪除。不知道這會對您產生多大影響,因爲您正在使用10年前的版本,但值得記住。

+0

不一定是答案,但每當我上傳圖像到數據庫,我base64編碼,然後將它存儲在clob。 當我想展示它時,我會解碼它。 – Flukey 2010-03-31 11:34:17

+1

@Jamie爲什麼這是無用的編碼? – 2010-03-31 11:37:47

+1

@Jamie Yea,爲什麼base64?所有這些都會增加數據的大小...... – Atli 2010-03-31 11:44:35

4

數據類型應該是文本,因爲將圖像保存到數據庫的最佳方式是保存其路徑。讓您的操作系統完成存儲實際文件的工作。

+0

雖然我同意這通常是最好的方法,但這不是他正在要求。 - 並確切地說,這是**最好的**方法是錯誤的。它通常是最好的方法,但肯定不會總是如此。 – Atli 2010-03-31 12:58:53

+0

您可能有一點,但我會確定地說,將圖像存儲到數據庫是錯誤的。 :) – simoncpu 2010-04-27 12:23:06

1

通常在SQL Server上,您將使用BLOB,Binary Large OBject來存儲圖像。我們在之前的項目中將它用於Word文檔,並且它工作得很好。有關更多信息,請參見this article on Database Journal,但對於BLOB類型的快速Google將拋出更多示例。

+0

我不認爲SQL Server有一個BLOB類型。或者,您是否可以更多地將它用作所有二進制類型的通用術語? – Atli 2010-03-31 13:30:09

0

在SQLServer中IMAGE或VARBINARY都是一樣的。 IMAGE是2GB,但VARBINARY()需要一個長度參數。 將圖像存儲在數據庫中並不是個好主意,大小會增加很多,每個備份需要保存所有圖像,而隨着大小的增加,還會增加執行備份和還原的時間。您還需要更改網絡數據包大小(在服務器屬性,高級,網絡,網絡數據包大小)最近SQLServer版本最準確的數據類型是varbinary(MAX)