2017-06-05 57 views
1

我想在webroot內創建一個新目錄(文件夾),這樣我就可以在該新文件夾內創建/編輯文件。cakephp - 在webroot內創建新目錄

我的代碼是:

$path = 'files' . DS . 'pathtofolder';// $folder_name; 
$folder = new Folder($path); 
if (!is_null($folder->path)) { //this is to verify if created 
    echo "Exists"; 
} 
else{ 
    echo "Doesnt exist"; 
} 

結果總是犯規存在。我無法找到我的cakephp文件夾中的任何創建的文件夾。

我試圖改變'文件'的'webroot',但它不工作。

這是創建目錄的正確代碼嗎?

回答

1

試試這個

$path = 'files' . DS . 'pathtofolder'; 
$folder = new Folder($path, true, 0755); 
if ($folder->path) { 
    echo "Exists"; 
} 
else{ 
    echo "Doesnt exist"; 
} 
+0

關於'$ create'參數的小解釋不會受到影響。 ** https://book.cakephp.org/3.0/en/core-libraries/file-folder.html#folder-api** | ** HTTPS://api.cakephp.org/3.4/class-Cake.Filesystem.Folder.html#___construct**。 – ndm

1

有一個直接的PHP調用來創建目錄。所以,你可以使用它。我不知道cakephp版本。

if (!mkdir($structure, 0777, true)) { 
    die('Failed to create folders...'); 
} 

另外,檢查您的網絡服務器用戶www-data是否有權限創建目錄。否則,在命令提示符下運行此命令

addgroup www-data 

這將添加www-data以啓用權限。如果您獲得權限拒絕錯誤,則可能需要在某些情況下將sudo添加到上述命令。

0
$path = WWW_ROOT . 'webroot' . DS . 'FolderNameYouWantToSet' . DS; 
       if (!file_exists($path)) { 
        $oldMask = umask(0); 
        mkdir($path, 0777, true); 
        chmod($path, 0777); 
        umask($oldMask); 
       } 

這將創建一個文件夾的權限777,你可以設置文件夾權限按照您的要求。

WWW_ROOT是一個全局的蛋糕變量,它存儲了直到項目的路徑。

+1

對於權限使用755而不是777可能會更好,後者有點過於自由。 – drmonkeyninja