【发布时间】:2009-03-10 19:22:01
【问题描述】:
当一个用户上传一个文件时,它会随机地被另一个用户的上传所取代,我终于找到了 PHP 和 tmp 文件名被重用的问题。有没有办法解决这个问题?有没有办法制作更好的随机名称?它似乎随着时间的推移而退化,因为随机文件名种子变弱了?这是 PHP 5.2.8 和 FreeBSD 7.0
这是一个日志,显示了相同的 tmp 文件名如何被另一个上传文件使用并被另一个上传文件覆盖:http://pastebin.com/m65790440
非常感谢任何帮助。我已经尝试解决这个问题超过 4 个月,并且随着时间的推移变得更糟。谢谢。
编辑:请记住,这不是 PHP 代码问题,这发生在它到达任何 PHP 代码之前,通过 $_FILES['name']['tmp_name'] 收到的文件在收到时不正确,并且追溯它在到达上传处理脚本之前被别人的上传覆盖了
【问题讨论】:
-
问题是您的 tmp 目录还是您将文件复制/移动到的目录?
-
我在使用 Freebsd 8 和 PHP 5.3 时遇到了同样的问题。为了重现,我有一个非常简单的上传脚本。对于 5 次测试,这里很可能会发生碰撞。这真的很糟糕。我真的不知道从哪里开始。如上所述,这个问题对 Google 来说也很困难。
标签: php file-upload temporary-files