2017-03-01 1 views

Antwort

1

Ihre Frage ist ein bisschen vage, aber ich gehe davon aus, dass Sie es programmgesteuert ausführen möchten, vielleicht von einem Controller aus?

Lassen Sie uns die Klasse Filesystem von Laravel nutzen, um uns dabei zu helfen.

An der Spitze des Controllers, lässt es wie so bringen: use Illuminate\Filesystem\Filesystem;

Jetzt haben wir es instanziieren können. $file = new Filesystem();. Und ich könnte es so machen:

$file = new Filesystem(); 
    $username = 'userNameGoesHere'; 
    $directory = 'directory/goes/here/' . $username; 
    if ($file->isDirectory(storage_path($directory))) 
    { 
     return 'Directory already exists'; 
    } 
    else 
    { 
     $file->makeDirectory(storage_path($directory), 755, true, true); 
     return 'Directory has been created!'; 
    } 

Jetzt, lassen Sie uns brechen, was wir gerade getan haben. Zuerst prüfen wir, ob das Verzeichnis existiert. Es ist einfach eine gute Übung, das zu tun, denke ich. Wenn nicht, dann schaffen wir es.

Lässt zerlegen, was die Argumente für makeDirectory() sind. Zuerst ist der Systemdateipfad. Wir verwenden den storage_path() Helfer, den Laravel uns gibt, um uns auf das Speicherverzeichnis hinzuweisen. Dann übergeben wir das Verzeichnis. Das zweite Argument sind die chmod-Berechtigungen für dieses Verzeichnis. Standardmäßig ist es auf 493 festgelegt. Drittens legen wir die Verzeichniserstellung auf rekursiv fest, was bedeutet, dass jedes Verzeichnis in Ihrem Pfad erstellt wird. Standard für rekursive ist false. Das letzte Argument weist die Verzeichniserstellung an, es zu erzwingen. Wenn Sie nicht überprüft haben, ob das Verzeichnis vorhanden ist und versucht hat, es trotzdem zu erstellen, ohne dies auf true zu setzen, würde Laravel eine Ausnahme auslösen, die sich darüber beschwert, dass das Verzeichnis bereits existiert. Wenn es auf True gesetzt ist, erstellt Laravel das Verzeichnis trotzdem neu. Sie können mehr über die Dateisystemklasse here lesen.

Ich hoffe, das hilft.

+0

Vielen Dank, es funktionierte :) – rebirth1078

+0

Froh, dass ich helfen konnte. – Mark

1

Der einfachste Weg ist einfach mkdir zu verwenden. Unter der Annahme, 775 ist die richtige Berechtigung für Sie:

mkdir(storage_path('app/public/user_folder'), 0775)

+0

Danke und ja ich brauchte die 775 Erlaubnis :) Das funktioniert auch – rebirth1078

Verwandte Themen