2017-01-18 5 views
0

Ich habe ein Problem mit dem Dateisystem in Laravel 5.3. Ich versuche, eine Datei in meinem lokalen Speicher zu speichern, aber wenn ich $file->store('directory', 'local') oder Storage::putFile('directory', $file) oder storage/app/directory/filenamestorage/app/directory/filename aufrufen, aber der von beiden Funktionen zurückgegebene Pfad enthält nicht den Pfad zum Verzeichnis storage/app, nur directory/filename.Laravel 5.3 Filesystem/putFile funktioniert nicht

Meine lokalen Speichertreiber Config ist wie folgt:

'local' => [ 
      'driver' => 'local', 
      'root' => storage_path('app'), 
     ], 

Offensichtlich konnte ich den $ Pfad mit dem storage_path() Helfer wickeln aber dieses Recht nicht erscheinen, wenn Sie die Dokumentation zu lesen. https://laravel.com/docs/5.3/filesystem#storing-files

Bin ich falsch oder etwas fehlt?

Antwort

0

es ist nicht wirklich verrückt. Der Speicherpfad ist konfigurierbar. Wenn Laravel ihn in der Datenbank speichern sollte, Sie ihn jedoch in der Zeile geändert haben, liegt ein Problem vor.

Sie können einfach storage_path($file) hinzufügen, wenn Sie versuchen, Ihre Datei in Ihrer Blade-Vorlage anzuzeigen. Dies wird automatisch den richtigen Pfad zum Speicher vor dem Dateinamen anwenden und sollte Ihre Datei dort finden, wo sie ist.

Sag mir, wenn das hilft/gearbeitet

+0

Diese Art von Sinn macht ich nehme an, ich wünschte nur, Taylor erklärte das in der Docs. Ich habe bereits die Hilfsfunktion angewendet, damit ich dabei bleibe. Ich werde dies als die Antwort bezeichnen, wenn niemand anderes etwas anderes hervorbringt. Danke – rosscooper

+0

Solange es Ihnen hilft. ;) –

0

von Entwurf, weil in der Config ist, haben Sie bereits die Speicherung/app Verzeichnis wie root Verzeichnis festgelegt.

So gibt es den Pfad relativ zu Ihrem Stammverzeichnis zurück.

Nehmen wir an, Sie möchten, dass absolute und nicht relative Pfade zurückgegeben werden. Stellen Sie sich nun vor, Ihr Speichertreiber wäre ein AWS S3-Bucket. In diesem Fall gibt es keinen Pfad absolute. Der absolute Pfad ist ein für den lokalen Treiber spezifischer Ausdruck, der Code wurde jedoch so geschrieben, dass er von mehreren Treibern erweitert/verwendet wird (und daher einen konsistenten Rückgabewert für die PUTFILE-Methode wünschte). Also, relativer Pfad war die einzige Wahl in diesem Fall

Verwandte Themen