2012-07-09 147 views
1

我正在爲使用ASP.NET和SQL Server的公司的員工執行Intranet上的配置文件部分我有一個上傳圖片區域(圖像字段顯示圖片,輸入到選擇文件和加載按鈕),這是工作正常,圖片加載到一個文件夾,但是,我也有用戶添加他的信息的文本字段,這也工作很好,並保存到數據庫中,現在我想要做的是用戶上傳圖片,並且當他點擊提交按鈕將所有字段發送到數據庫時,所有文本字段完成,他上傳的圖片的名稱或路徑也會進入數據庫,我的所有文本字段都使用帶有insertParameters的sqlDataSource進行保存。將圖像名稱或路徑保存到數據庫中

任何想法如何做到這一點?我寧願用前端代碼來做,因爲在後面的代碼中,我只是初始化SqlDataSource1.Insert();

+0

請你能告訴你有什麼實現以處理來自用戶的圖象要保存在服務器上? – 2012-07-09 20:10:13

+0

這個問題之前已經被問過很多次了,例如[圖片存儲爲文件或數據庫中的Web應用程序?](http://stackoverflow.com/questions/561447/store-pictures-as-files-or-in-the-database-for-a-web-應用程序) – Pondlife 2012-07-09 20:36:17

回答

1

不要將圖像保存到磁盤,這樣做遲早會導致醜陋的混亂。 你應該做的是讓用戶上傳圖像,調整/裁剪服務器上的圖像,將圖像轉換爲base64並將base64字符串保存到varchar(max)列中。

因爲您只保存小圖像(頭像),所以此解決方案應該沒有任何問題。 此外,當您從數據庫中提取圖像base64字符串時,如果不需要IE7,則可以將其直接嵌入到HTML中。以下是支持的瀏覽器列表Data URI scheme

如果將base64嵌入到HTML中不起作用,則放入一個ASP.NET頁面,該頁面將base64字符串解碼爲圖像並返回二進制響應。然後利用它在你的網頁是這樣的:

<img src="http://www.example.com/images.aspx?thimageDBrowID=12345" width="20" height="20"/> 
+0

說實話,我不明白你的答案!圖像不小,是規則的圖片,但我保存圖像時的代碼將其縮小到更小的尺寸(160x120)並保存這個小版本並保留大圖片 – Ivelisse 2012-07-09 20:38:22

+0

160x120是一個小圖像。大圖像是4000x2500。爲什麼你保存大的?...無論如何,我的答案是按原樣提供的。我無法遠程爲您編寫代碼。幾次閱讀答案,如果你有一個特定的問題不要猶豫,問。 – 2012-07-09 20:42:08

+0

160x120是頭像大小,我保存大的一個(尺寸像,IDK,數碼相機常規尺寸),因爲可以在項目的其他部分 – Ivelisse 2012-07-09 20:56:14

0

如果您使用SQL Server 2008中,你可以考慮使用FILESTREAM

相關問題