Ich bin ein Anfänger hier so entschuldigen Sie mich für diese Frage bin return File::put($path , $data);
verwenden, um eine Datei im öffentlichen Ordner auf Laravel zu erstellen. Ich habe dieses Stück Code vom Controller verwendet Ich muss den Wert von $path
wissen, wie es sein sollte.Wie bekomme ich ein öffentliches Verzeichnis?
Antwort
Verwenden public_path()
als Referenz hilft:
// Path to the project's root folder
echo base_path();
// Path to the 'app' folder
echo app_path();
// Path to the 'public' folder
echo public_path();
// Path to the 'storage' folder
echo storage_path();
// Path to the 'storage/app' folder
echo storage_path('app');
Nur um hinzuzufügen, dass 'public_path()' ist eigentlich ziemlich nutzlos - es nimmt nur an, dass alle Ihre öffentlichen Dateien in einem Verzeichnis namens "public" sind - auch wenn sie nicht sind. Zum Beispiel muss ich immer das Standardverzeichnis "public" in "public_html" ändern (in Übereinstimmung mit meinem Server). Laravel erkennt das nicht. Verlassen Sie sich also nicht darauf, um eine intelligente Entscheidung darüber zu treffen, was Ihr öffentliches Verzeichnis tatsächlich ist. Ich benutze nur '$ _SERVER ['DOCUMENT_ROOT'];' es sei denn, jemand kann vorschlagen, warum ich nicht sollte? – Inigo
Sie können base_path() verwenden, um die Basis Ihrer Anwendung zu bekommen - und dann fügen Sie einfach Ihren öffentlichen Ordner, dass:
$path = base_path().'/public';
return File::put($path , $data)
Hinweis: Seien Sie sehr vorsichtig über den Menschen ermöglichen, Dateien zu laden in die root von public_html. Wenn sie ihre eigene index.php-Datei hochladen, übernehmen sie Ihre Website.
ist Basispfad definiert in Laravel .. ich habe es ich habe diesen Fehler Aufruf zu undefinierte Funktion base_path() –
Ja - es ist in helpers.php definiert. Ich habe in meiner L4 App getestet - es funktioniert. Stellen Sie sicher, dass Sie den neuesten L4-Build ausführen, der in den früheren Versionen möglicherweise nicht enthalten war. – Laurence
Ich weiß, das ist ein wenig spät, aber wenn jemand anderes auf der Suche kommt, können Sie jetzt public_path(); In Laravel 4 wurde es in die Datei helper.php im Support-Ordner see here hinzugefügt.
Der beste Weg, Ihren öffentlichen Ordner-Pfad von Ihrem Laravel Config abzurufen ist die Funktion:
$myPublicFolder = public_path();
$savePath = $mypublicPath."enter_path_to_save";
$path = $savePath."filename.ext";
return File::put($path , $data);
Es gibt keine Notwendigkeit, alle Variablen haben, aber das ist nur für einen demonstrativen Zweck.
Hope this, GRnGC
verwenden Sie Laravel 3 oder 4 Laravel? – Laurence
Ich benutze Version 4 –