yii2小项目问题汇总

1.mkdir($path,$mode,$recursive,$context)用法

1.第一个参数,路径,绝对路径和相对路径都可以,常常用相对路径,因为方便代码迁移.

2.第二个参数,由四位八进制数组成,第一位通常是0,跟特殊权限有关,可以不用太在意。需要注意的有两点:

第一,0777代表着最高权限,但实际创建的目录可能权限是775,这个文件权限屏蔽值有关,意思就是你的权限被削减了;

比如文件权限屏蔽值为0022,则创建目录最终权限为:0777-0022=0755;

你可以umask命令查看你的权限屏蔽值,了解更多Goole\百度。

第二,这个参数,最好不要以字符串方式填充,如‘0777’,因为这会被当成十进制数,然后新创建的目录就会出现一些奇怪的权限如:dr----x--t

3.第三个参数,就是要不要递归创建,默认是false。举个栗子吧:/照片/年/月

如果你要创建的目录是月,/照片/年 目录已经存在,$recursive=true 或者 $recursive=false都无所谓。

但是如果仅仅是 /照片 目录存在,你要创建的是 /照片/年/月 两级目录,注意,这时候如果不设置$recursive=true的话则会创建失败。

我之前上传图片的时候,保存的是相对路径。比如在前台:

<?php
namespace frontend\FileController;
class FileController extends Controller
{
public function actionIndex()
    {   
         //if(mkdir('upload',0777,true))
        if(mkdir('./upload',0777,true)) echo  "创建成功";
        else                       echo  "创建失败";
        exit(0);
       
    }
}
?>

你会发现创建的目录是@frontend/web/upload,也就是说mkdir是把@frontend/web当成起点去创建文件夹的。

百度了一圈,没有找到特别满意的答案,大意就是这是默认设置把文件夹设置在@frontend/web下。

所以在视图文件里读取图片的时候我用的是:"upload/....../0000011111.png",用绝对地址读取不出图片。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章