2013-03-31 59 views
-2

我一直在使用sqlserver和asp.net來存儲和檢索圖像。但我認爲,每次瀏覽數據庫並檢索文件似乎都非常耗費資源。但是,如果我將圖像存儲在服務器上的文件夾將是正確的和標準的或不?有沒有其他的解決辦法和一些專業建議?在服務器上存儲和檢索圖像的最佳方式

+1

將圖像上傳到文件夾並鏈接到文件夾有什麼問題? –

+2

沒有最好的辦法。 – walther

+0

好的.. walther ..但我很困惑如何命名圖像文件?任何建議 – spiral

回答

1

將圖像存儲在文件系統中,(重新)在圖像的散列值後命名它們(md5具有collisions的可能機會,嘗試SHA1或RIPEMD-160),將散列作爲索引存儲在數據庫中與所有'元'數據(源IP,原始名稱,尺寸,上傳/作者等),你想鏈接/存儲該圖像。

但這只是一種方式,'最佳'做'它'取決於你的具體情況。

編輯:
我已經使用在某些情況下的變化:與CRC32(固定長度的散列輸出)所附的MD5(固定長度的散列輸出)。與160位散列相比,這仍然是相同的總輸出大小,但我認爲衝突機率很小(可能不存在,但是,如果您實際上發現兩個不同的文件具有相同的md5 crc32,你可以收集你的5分鐘的互聯網名聲)。
然後我使用base64編碼降低了文件名的長度。大部分「計算開銷」只是在將圖像添加/上載到系統時發生。
例如,具有md5 d8a4608d42c38ead31439b0896212311和crc32 ed108bd0(變成d8a4608d42c38ead31439b0896212311ed108bd0)的文件在base64中給出2KRgjULDjq0xQ5sIliEjEe0Qi9A=
在較長文件名的「代價」上,這具有很好的優勢,即使在大拇指和高分辨率版本之間,生成的文件名也應該很難預測。

祝你好運!

相關問題