【问题标题】:PHP Image uploading - uniqueness via microtime()PHP 图片上传 - 通过 microtime() 的唯一性
【发布时间】:2009-10-15 14:04:09
【问题描述】:

如果我将每个上传文件的文件名设为 PHP 的 microtime(),碰撞的风险是否现实?有没有办法进一步随机化文件名?

我预计大约一周内会有大约 20,000 次上传。那是 2800/天或 119/小时(假设分布均匀)。有没有人有任何假设微时间是独一无二的经验?

谢谢!

【问题讨论】:

    标签: php file-upload unique


    【解决方案1】:

    在您的情况下生成随机文件名的最佳方法是使用GUIDs。它们很棒,因为即使对于多个服务器,该算法也能保证值的唯一性。如果您使用的是 Windows,com_create_guid 功能适合您。 您也可以查看适用于所有 PHP 平台的uniqid 函数。

    【讨论】:

    • 在 uniqid 的 cmets 中有一些很好的例子,它们提供了更多的细节和其他例子来说明唯一性。
    【解决方案2】:

    一种常用的方法是创建格式为 YYYY/MM/DD/id.jpg 的目录。这样您也不会遇到文件系统限制。

    【讨论】:

    • 那些限制是文件/目录? apache linux 机器上的那些是什么?
    【解决方案3】:

    我认为这不是一个大问题。 (有点偏执)

    检查是否存在,如果存在,解决冲突(可能在一个while循环中,直到保证其唯一性)。

    我无法想象每微秒有这么多文件。

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      相关资源
      最近更新 更多