以下は超シンプルな実装。storage/app以下のimagesディレクトリ(存在しなければ作成される)に、生成されたユニークIDをファイル名として保存される。
1 2 |
$path = $request->file('image')->store('images'); // path: "images/Xloh4CDS00CwuCikL6yJgJeSQhlwOzb17Svx40wc.jpeg" |
ストレージディレクトリの公開
以下のコマンドでpublic/storageからstorage/app/publicへシンボリックリンクが生成される。
1 |
$ php artisan storage:link |
そうしておいて、storage/app/public以下へファイルをアップロードすると、public/storage経由でフロントエンドからアクセスできるようになる。
バリデーションメモ
画像、3MB未満、最小120×120、最大400×400の例
1 2 3 |
$this->validate($request, [ 'file' => 'image|max:3000|dimensions:min_width=120,min_height=120,max_width=400,max_height=400' ]); |
参考サイト
File Storage – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/5.5/filesystem#file-uploads
ファイルのアップロード – ララジャパン
http://www.larajapan.com/tag/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89/