PHP机制阻止用户两次上传同一文件

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP机制阻止用户两次上传同一文件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图允许用户通过 PHP网站上传文件.由于所有文件都保存在服务器上的单个文件夹中,因此可以想象(尽管可能性很低)两个不同的用户可以上传两个文件,这些文件虽然不同,但命名完全相同.或者他们可能是完全相同的文件.

在这两种情况下,我都想使用exec(“oPEnssl md5”.$file [‘upload’] [‘tmp_name’])来确定文件上传后的MD5哈希值.然后我将检查数据库是否有任何相同的MD5哈希,如果找到,我将无法完成上传.

但是,在move_uploaded_file文档中,我发现了这条评论

这是真的吗?将tmp目录中的文件移动到永久位置后,它的MD5哈希值是否会发生变化?我不明白为什么会这样.无论如何,还有另一种更好的方法可以确保同一文件不会多次上传文件系统吗?

解决方法

如果您对答案中给出的所有原因深信不疑并且决定不使用Md5(我仍然不确定您是否想要或者必须使用哈希),那么您可以为每个用户附加一些独特的东西,上传到每个文件名的时间.这样你最终会得到更可读的文件名.类似于:$filename =“$filename- $user_ip_string- $microtime”;.当然,在此之前必须准备好并格式化所有三个变量,不言而喻.

没有机会同时出现相同的文件名,相同的IP地址和相同的微缩时间,对吗?你可以轻松地使用microtime,但IP会让它更加确定.当然,正如我所说,如果您决定不使用散列并寻求更简单解决方案,那么这一切都会成功.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP机制阻止用户两次上传同一文件全部内容,希望文章能够帮你解决PHP机制阻止用户两次上传同一文件所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。