Laravel

[Laravel8]Storageの削除(Delete)ができないの解決

Laravelで画像のアップロードをして、その画像を変更する場合は元の画像も削除したい。

でないと、Storageの中はどんどんゴミが溜まっていくだけ。。

これはツライ。

しかし下記のやり方ではできない><

$user = Auth::user();
$file_name = basename($path);
 //ファイルの削除

Storage::delete($user->face_img_name);//not work not can't 削除できない

原因は、config/filesystems.phpを見てほしい

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

ここで、public内はこのような指定になっている。

実は、この指定ができていないのが原因みたい。

こちらで動く(work)よ

$user = Auth::user();
$file_name = basename($path);
 //ファイルの削除

 Storage::disk('public')->delete($user->face_img_name);//指定してあげる

このようにpublicを指定してあげるとちゃんと削除ができる!

-Laravel

© 2022 青い空とコーヒーと