Laravelで画像をアップロードするディレクトリを指定する方法

今回の記事は、Laravelでの画像アップロードの流れをある程度理解している方を対象としています。

画像アップロードについて、全体の流れは書きません。
ポイントは、
・画像アップロードのディレクト指定方法
・シンボリックリンクの方法
・画像の呼び出し方

この3点です。

画像アップロードのディレクト指定方法

画像をアップロードするディレクトリを指定する方法は
controller中で storeにディレクトリを指定します。

$fileImage = $request->file('image')->store('public/profile');
$user->image_path = basename($fileImage);

今回指定したのは、public/profile ディレクトリです。

store('public/profile');

これが実行されると
storage/appの配下にディレクトリが作成されます。
今回ので言うと
storage/app/public/profile ディレクトリが作成されて、
その配下に、画像がアップロードされます。

シンボリックリンクの方法

シンボリック方法です。

php artisan storage:link 

こちらのコマンドでpublic と storageが連携されるのは分かっているが、ディレクトを追加した際に、どうなるのか分からないという方もいるかと思います。

心配いりません。
こちらのコマンドを実行すると、publicディレクトリに、storageがリンクされます。

画像の呼び出し方

では、このリンクさせた画像を呼び出してみましょう。

 <img src="{{ asset('storage/profile/' . $user->image_path) }}" 
 ※$user->image_path storeする際に、保存していたファイル名 

これで、指定したディレクトリからファイルを呼び出すことが可能です。