php - 磁盘上文件的随机名称 sha1 或 uniqid 哪个更好?

标签 php file upload unique sha1

为了将用户上传的文件存储在磁盘文件夹内的远程服务器上,我将文件名更改为

$filename = '/tmp/foo.txt';
$newName = sha1_file($filename); // 40 characters 
//or I can do
$newName = uniqid($filename) // 13 characters 

对于不太可能失败的新名称,哪种方法更可靠?? 谢谢。

最佳答案

更好的解决方案是使用tmpfile()tempnam()。任何一个都可以保证创建一个未使用的文件,该文件不会发生冲突,也不会被流氓进程更改对您的权限“拦截”。 tmpfile() 会在文件关闭时自动删除文件,而 tempnam() 会保留它

http://www.php.net/manual/en/function.tmpfile.php

http://www.php.net/manual/en/function.tempnam.php

关于php - 磁盘上文件的随机名称 sha1 或 uniqid 哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224513/

相关文章:

php - Laravel 从 blade 指令复制查询

php - 导入同名的 2 个类

php - 向数据库添加参数后,通过Postman POST数据时出现错误

用于读取大量文件的 C# 守护进程

安卓 AVD + Eclipse : How to remove a directory from Android File Explorer?

php - MySQLi 相当于 mysql_result()?

django上传文件没有模型

php - undefined index 错误 - 图片上传相同的代码正在处理另一个示例

用于检查互联网速度的 Java API(上传/下载)

iphone - 通过应用程序加载器提交的应用程序的格式?