【问题标题】:Creating directories from filename?从文件名创建目录?
【发布时间】:2011-01-15 21:59:29
【问题描述】:

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

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

因此,如果有人有不错的提示或分享一些代码,那就太棒了! :) 哦,是的,如果有帮助,我正在为这个项目使用 CodeIgniter?

【问题讨论】:

  • 如果您能告诉我们您将在这些图像存储后如何处理这些图像,例如应该如何访问它们等,我们可能会提出更好的解决方案. 了解上传图片的人是否重要也很有用。

标签: php image codeigniter directory storage


【解决方案1】:

使用 uuid 怎么样?

【讨论】:

    【解决方案2】:

    将hash的前4个十六进制字符转为一级目录,后4个十六进制字符转为二级目录。将文件与完整的哈希一起存储在其中。

    【讨论】:

    • 老兄检查我的网址示例?
    【解决方案3】:

    我会为图片本身使用 uid,但每个目录没有 32,000 个文件的限制吗?这几乎会立即被超过,因此您仍然需要一些目录结构。

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

    【讨论】:

      【解决方案4】:

      亲吻

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

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


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

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

      【讨论】:

      • 比我的解决方案更好,因为我没想过每天添加 32K 图像 - 只是最初的一批 :-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 2015-04-17
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 2012-06-25
      相关资源
      最近更新 更多