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",用絕對地址讀取不出圖片。

 

 

 

 

 

 

 

 

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