2010-02-11 88 views
1

我正在創建處理「大量」圖像的網站。我決定使用多個目錄方法來存儲文件,例如。 images/efg/ed/ehj/efgedehjokjvdf2jn4.jpg從文件名創建目錄?

我在想,防止文件名重複是採取當前timedate +一些隨機字符串+ md5這些=隨機字符串的好行。大多數我想知道如何創建這些路徑?什麼是管理這些的最佳方式?我們正在談論10,000 - 30,000圖像的初學者..

所以,如果有人有很好的提示或可能共享一些代碼,那將是太棒了! :)哦,是的,我使用CodeIgniter這個項目,如果有幫助?

+0

我們也許可以想出更好的解決方案,如果你能告訴我們在存儲完這些圖像之後會如何處理這些圖像,比如應該如何訪問這些圖像等等。瞭解知道誰上載圖片很重要也很有用。 – Randell 2010-02-14 19:50:19

回答

2

KISS

date('Y')/date('md')/date('Hi')/md5($image).ext 

這很簡單,我不認爲你會在一分鐘之內將超過32K的文件。


如果您不需要分鐘,可與最多8928子目錄工作,你可能只是這樣做:

date('Y')/date('mdH')/md5($image).ext 
+0

比我的解決方案更好,因爲我沒有考慮每天添加32K圖像 - 只是最初的一批:-) – niggles 2010-02-12 05:57:32

1

將散列的前4個十六進制字符轉換爲第一級目錄,將第二個4進制轉換爲第二級。將文件與完整散列一起存儲在那裏。

+0

老兄檢查我的url的例子? – Marko 2010-02-11 21:56:57

0

我會爲圖片本身使用一個uid,但是每個目錄中沒有32,000個文件的限制嗎?這幾乎會被立即超過,所以你仍然需要一些目錄結構。

難道你不能製作一個新的文件夾和他們上傳的日期,並保存在一個數據庫列和uid在另一個 - >你不會超過32,000天的圖像。