php

PHP自带创建目录的代码,在upload目录下,先创建document再创建20200212两个目录

 # 判断存储目录是否存在,无则自动创建
$storage = '/upload/document/20200212';
if(!is_dir($storage)){
    mkdir($storage,'0777',true);
    chmod($storage,0777);
}

根据php文档说明,使用true就能够递归,实现上在服务器上创建document之后,就出现了权限问题。

Warning: mkdir(): Permission denied in /home/public_html/app/upapi/module/Upload.php on line 158
Warning: chmod(): No such file or directory in /home/public_html/app/upapi/module/Upload.php on line 159

观察被创建的document权限是很乱的,而且没有写权限。

111.png

临时解决办法就是重写这个法,

# 判断存储目录是否存在,无则自动创建
if(!is_dir($storage)){
    $this->mkdirs($storage);
}

function mkdirs($dir){
    return is_dir($dir) or ($this->mkdirs(dirname($dir)) and mkdir($dir,0777));
}

Comment

This is just a placeholder img.