从文件名创建目录?

时间:2010-02-11 21:38:31

标签: php image codeigniter directory storage

我正在创建处理“大量”图片的网站。我决定使用多个目录方法来存储文件,例如。 images/efg/ed/ehj/efgedehjokjvdf2jn4.jpg

我认为防止文件名重复是采取当前时间+一些随机字符串+ md5那些=随机字符串的好行。大多数情况下,我想知道如何创建这些路径的方法?管理这些的最佳方法是什么?我们正在谈论10,000到30,000张图片作为首发......

因此,如果有人有很好的提示或者可能会分享一些代码,那就太棒了! :)哦,是的,如果有帮助的话,我在这个项目中使用CodeIgniter?

4 个答案:

答案 0 :(得分:2)

KISS

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

这很简单,我认为你不会在任何给定的时间内超过32k文件。


如果您不需要分钟,并且可以使用最多8928个子目录,那么您可以这样做:

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

答案 1 :(得分:1)

将哈希的前4个十六进制字符转换为第一级目录,将第二个4个十六进制字符转换为第二级。使用完整哈希将文件存储在那里。

答案 2 :(得分:0)

如何使用uuid?

答案 3 :(得分:0)

我会使用uid作为照片本身,但是每个目录不存在32,000个文件的限制吗?这几乎会立即超出,所以你仍然需要一些目录结构。

你不能创建一个包含上传日期的新文件夹,并将其保存在一个数据库列中,将uid保存在另一个数据库列中 - >你不会超过32,000天的图像。