创建随机文件夹 - PHP

时间:2013-01-12 04:59:19

标签: php

我开发了一个API集成,它包含多个图像/文件上传。如果多个用户上载具有相同名称的文件,则存在名称冲突。

我计划创建具有随机名称的动态文件夹来解决此问题(作为临时文件夹&将在完成该过程后删除)。有没有可用于在PHP中生成随机文件夹的方法/技术?

3 个答案:

答案 0 :(得分:14)

对于这样的事情,我发现php函数uniqid很有用。 基本上,这样的事情:

$dirname = uniqid();
mkdir($dirname);

然后将上传的文件移动到此目录。

编辑:忘记提及,目录名称不是随机的,但保证是唯一的,这似乎是你需要的。

答案 1 :(得分:2)

我想最好有一个函数尝试创建随机文件夹(并验证它是否成功),直到成功为止。

这个没有竞争条件,也不依赖于对uniqid()的信任,提供一个尚未在tempdir中用作名称的名称。

function tempdir() {
    $name = uniqid();
    $dir = sys_get_temp_dir() . '/' . $name;
    if(!file_exists($dir)) {
        if(mkdir($dir) === true) {
            return $dir;
        }
    }
    return tempdir();
}

答案 2 :(得分:0)

是的,可以使用mkdir()示例

<?php
mkdir("/path/to/my/dir", 0700);
?>

有关详情,请查看

http://php.net/manual/en/function.mkdir.php