Avatar ·

如果文件夹不存在则创建:PHP 中的正确方法

大家好!我是 PHP 新手,正在尝试用 WordPress 做一个简单的 CMS。我需要在上传图片到服务器时按日期创建目录,例如 /uploads/2024/03/。但如果文件夹还不存在,我总是收到错误 "failed to open stream: No such file or directory"。

这是我当前的代码:

$path = '/var/www/html/uploads/' . date('Y/m');
$file = $path . '/image.jpg';

// 尝试保存文件
file_put_contents($file, $data);

我已经尝试在写入前使用 mkdir($path),但文件夹仍然没有创建。我谷歌了一下——有人说需要检查是否存在。我添加了检查:

if (!file_exists($path)) {
    mkdir($path);
}

但现在错误变成了 "mkdir(): No such file or directory"!我哪里做错了?为什么 mkdir 在文件夹不存在时无法创建?是不是需要设置权限?还是我指定的路径不对?请教一下,如何正确创建嵌套目录?