2016-09-28 15 views
1

アップロードしていくつかの画像を表示するシステムを作成していますが、アップロードされた画像にアクセスする正しい方法については混乱しています。Laravelのストレージにアクセスできない

public function storeImage(Request $request) 
{ 

    $request->file('image')->store('public/images'); 

    $filename = md5_file($request->file('image')) . '.' . $request->file('image')->extension(); 
    $img = new Image; 
    $img->path = 'storage/images/'.$filename; 
    $img->save(); 

    return back(); 
} 

ここでインライン画像のsrc属性として挿入するように生成することが正しいパスです何これは正常に動作し、提案されているよう私はstorageをシンボリックリンクしている、私は、データベースから$filename変数を使用している場合しかし、私は404を取得します?

イメージタグは次のようになります。 <img src="storage/images/89cdd31f2e0eeacceff96c2a0abb252f.jpeg"> フォルダは、私がファインダで追跡できるように間違いなくシンボリックリンクされています。

+0

フォルダはシンボリックリンクされていますが、そこには画像がありますか? – ceejayoz

+0

画像があります – userqwert

+1

保存前に/を追加してみませんか?それ以外の場合は、Webルートからではなく、Webページを基準にフォルダをロードしようとします。 – aynber

答えて

2

はこれを修正しました。

php artisan storage:linkはホームステッドでは機能しません。フォルダを削除する代わりに、homestead sshln -s ~/projects/my-website/storage/app/public/ ~/projects/my-website/public/storageを使用して、手動でフォルダを再作成してください。

1

最新バージョンのlaravel 5.3を使用していますか?

もしそうなら、URL method from the Storage facadeを使って画像src URLを取得しようとしましたか?

例:

use Illuminate\Support\Facades\Storage;

$url = Storage::url('file1.jpg'); //acquire URL

+0

うん、これはどちらも動作しませんし、 '/ storage/89cdd31f2e0eeacceff96c2a0abb252f.jpeg'をパスとして与えます。 – userqwert

関連する問題