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を指定してあげるとちゃんと削除ができる!