2017-03-21 3 views
0

Ich versuche, Bild für meine App zu speichern und anzuzeigen. Das Bild wurde ordnungsgemäß gespeichert, konnte jedoch nicht angezeigt werden. Zuerst habe ich erstellt symbolische Verknüpfung Befehl: php artisan storage:link
config/filesystem.php wie folgt aussehen:Bild abrufen fehlgeschlagen mit Laravel 5.4

'local' => [ 
     'driver' => 'local', 
     'root' => storage_path('app'), 
    ], 
    'public' => [ 
     'driver' => 'local', 
     'root' => storage_path('app/public'), 
     'url' => env('APP_URL').'/storage', 
     'visibility' => 'public', 
    ], 

zum Speichern von Bild:

if($request->hasFile('avatar')) 
{ 
    $path = $request->file('avatar')->store('avatars'); 
    //$path=avatars/generated_image_name.extension 
    $user->avatar=$path; 
    $user->save(); 
} 
//image storing under: (../storage/app/avatars) 

anzuzeigen Bild zur Ansicht:

<img src="storage/{{$user->avatar}}" 
     alt="no image!!" 
     class="img-circle" 
     style="width:150px;height:150px;"> 

versucht src="storage/app/{{$user->avatar}}" & src="{{$user->avatar}}" , aber Bild kann nicht abgerufen werden. Versteh nicht, was ich falsch mache.

+0

Versuchen Sie, diese Hoffe, es hilft –

+0

Nein, es funktioniert nicht ... – unreleased

+0

Inspizieren Element im Browser und sehen, welchen Weg Sie eigentlich bekommen img src. Und lassen Sie mich wissen! –

Antwort

0

Hate, um dieser Typ zu sein, aber haben Sie die Dokumente gelesen. Sie müssen eine symbolische Verknüpfung zwischen 10 und storage/app/public erstellen.

The Public Disk

Die öffentliche Festplatte wird für Dateien gedacht, die öffentlich zugänglich sein wollen. Standardmäßig verwendet der öffentliche Datenträger den lokalen Treiber und speichert diese Dateien in storage/app/public. Um sie aus dem Internet zugänglich zu machen , sollten Sie eine symbolische Verbindung von public/storage zu storage/app/public erstellen. Diese Konvention hält Ihre öffentlichen zugreifbaren Dateien in einem Verzeichnis, das problemlos über Bereitstellungen verteilt werden kann, wenn Sie Zero-Down-Time-Deployment-Systeme wie Envoyer verwenden.

die symbolische Verknüpfung erstellen, können Sie die storage:link Artisan Befehl verwenden:

php artisan storage:link 

bearbeiten

Wieder würde ich die Dokumente überprüfen oder vielleicht lesen :) ihnen.

Ich denke, Ihr Standardspeicher ist local und nicht public. Unter config/filesystems.php sehen Sie sich den Standardtreiber an.

Storing Files> Datei Uploads> Festlegen A Disk-

oder so etwas wie dies versuchen.

if($request->hasFile('avatar')) 
{ 
    $path = $request->file('avatar')->store(
     'avatars/'.$request->user()->id, 'public' 
    ); 
    //$path=avatars/generated_image_name.extension 
    $user->avatar=$path; 
    $user->save(); 
} 
+0

ich dies von docs lesen Danke – unreleased

+0

Vorschlag von meiner Seite speichern Sie Ihr Bild in der Öffentlichkeit/images Verzeichnis und wenn Sie abrufen Schreib