我开发了一个 API 集成,它包含多个图像/文件上传。如果多个用户上传具有相同名称的文件,则存在名称冲突。
我计划创建具有随机名称的动态文件夹来解决此问题(作为临时文件夹,一旦完成该过程将删除)。是否有任何方法/技术可用于在 PHP 中生成随机文件夹?
我开发了一个 API 集成,它包含多个图像/文件上传。如果多个用户上传具有相同名称的文件,则存在名称冲突。
我计划创建具有随机名称的动态文件夹来解决此问题(作为临时文件夹,一旦完成该过程将删除)。是否有任何方法/技术可用于在 PHP 中生成随机文件夹?
对于这样的事情,我发现 php 函数uniqid很有用。基本上,是这样的:
$dirname = uniqid();
mkdir($dirname);
然后只需将上传的文件移动到该目录即可。
编辑:忘了提,目录名称不是随机的,但保证是唯一的,这似乎是你需要的。
我想最好有一个函数来尝试创建随机文件夹(并验证它是否成功)直到它成功。
这个没有竞争条件,也不依赖于对 uniqid() 提供尚未在 tempdir 中用作名称的名称的信任。
function tempdir() {
$name = uniqid();
$dir = sys_get_temp_dir() . '/' . $name;
if(!file_exists($dir)) {
if(mkdir($dir) === true) {
return $dir;
}
}
return tempdir();
}
是的,它可以使用mkdir()
示例
<?php
mkdir("/path/to/my/dir", 0700);
?>
更多检查这个