php 创建目录


php create directory

我正在创建一个目录,但收到错误

警告:chmod() [function.chmod]:第 104 行的/home/www/public_html/console/pubs-add.php 中没有这样的文件或目录

运行代码的 php 文件位于 www/console 中,我尝试创建的目录位于 www/images/gallery 中。

我已经尝试了许多设置路径的变体,例如../images/gallery or home/www 但没有任何工作

define("PATH", "/www/images/gallery");
$dir = 'a1234';
$targetfilename = PATH . '/' . $dir;
if (!is_file($dir) && !is_dir($dir)) {
    mkdir($dir); //create the directory
    chmod($targetfilename, 0777); //make it writable
}

mkdir命令只使用 $dir ,它只是 'a1234'(在当前工作目录中)。这将失败(并使chmod也失败)。

解决方案:您可能希望以 PATH 作为$dir前缀...

亲爱的chmod()创建一些时间问题。所以我会建议你使用这个mkdir("/path/to/my/dir", 0700);如果您希望创建的目录应该准备就绪并且可调用,请使用此目录mkdir("/path/to/my/dir", 0777);

问题是您无法chmod尚未创建的文件。出于这个原因,我改变了这条线

$task = chmod($targetfilename, 0777); //make it writable

$task = chmod($dir, 0755); //make folder writable

提示: 如果您希望文件夹可写,请将其 chmod 设置为 755 而不是 777。 777 用于文件。

它会在您当前的工作目录中$dir,但是,这并不意味着这等于您的$targetfilename。我想说的是,你必须做mkdir($targetfilename)而不是mkdir($dir)