我正在创建处理“大量”图片的网站。我决定使用多个目录方法来存储文件,例如。 images/efg/ed/ehj/efgedehjokjvdf2jn4.jpg
我认为防止文件名重复是采取当前时间+一些随机字符串+ md5那些=随机字符串的好行。大多数情况下,我想知道如何创建这些路径的方法?管理这些的最佳方法是什么?我们正在谈论10,000到30,000张图片作为首发......
因此,如果有人有很好的提示或者可能会分享一些代码,那就太棒了! :)哦,是的,如果有帮助的话,我在这个项目中使用CodeIgniter?
答案 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天的图像。