2017-06-05 3 views
1

Ich möchte ein neues Verzeichnis (Ordner) in der Webroot erstellen, damit ich Dateien in diesem neuen Ordner erstellen/bearbeiten kann.cakephp - Erstelle ein neues Verzeichnis innerhalb des Webroot

Mein Code ist:

$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"; 
} 

Das Ergebnis immer existieren tut wird. Und ich finde keinen erstellten Ordner in meinen CakePHP-Ordnern.

Ich habe versucht, "Dateien" für "Webroot" zu ändern, aber es funktioniert nicht.

Ist dies der richtige Code zum Erstellen eines Verzeichnisses?

Antwort

1

versuchen diese

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

Eine kleine Erklärung über den $ create-Parameter würde nicht schaden. ** https: //book.cakephp.org/3.0/de/core-libraries/file-folder.html#folder-api** | ** https: //api.cakephp.org/3.4/class-Cake.Filesystem.Folder.html#___construct. – ndm

1

Es gibt einen direkten PHP-Aufruf zum Erstellen von Verzeichnissen. Also, Sie können das verwenden. Ich kenne die CakePHP-Version nicht.

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

Überprüfen Sie auch, ob Ihr Webserver-Benutzer www-data über Berechtigungen zum Erstellen von Verzeichnissen verfügt. Andernfalls führen Sie an der Eingabeaufforderung diesen Befehl

Das wird WWW-Daten hinzufügen Berechtigungen zu aktivieren. Möglicherweise müssen Sie in einigen Fällen sudo zum obigen Befehl hinzufügen, wenn Sie den Fehler "permission denied" erhalten.

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

Dieser einen Ordner mit 777 Erlaubnis erstellen, werden Sie den Ordner Erlaubnis nach Ihren Anforderungen einstellen können.

WWW_ROOT ist die globale Kuchenvariable, die den Pfad bis zum Projekt speichert.

+1

Es wäre wahrscheinlich besser, 755 als 777 für Berechtigungen zu verwenden, die später ein wenig zu liberal ist. – drmonkeyninja

Verwandte Themen