【发布时间】:2019-09-02 18:00:43
【问题描述】:
如何在上传新照片的同时删除之前的照片?
这是我的更新头像功能
public function update_avatar(Request $request){
$request->validate([
'avatar' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$user = Auth::User();
$avatarName = $user->id.'_avatar'.'.'.request()->avatar->getClientOriginalExtension();
$request->avatar->storeAs('avatars',$avatarName);
$user->avatar = $avatarName;
$user->save();
return back()
->with('success','You have successfully upload image.');
}
编辑:
我将照片存储在 STORAGE > APP > PUBLIC >AVATARS
此代码的作用是,它只会覆盖上一张照片。例如,我有我当前的2_avartar.jpg,如果我用 PNG 扩展文件更新我的照片,2_avartar.jpg 在添加2_avartar.jpg.png 时仍将保留。如果我再次更新 GIF 文件,2_avartar.jpg 和 2_avartar.png 将保留并添加新的 2_avartar.gif。如果您在更新照片之前上传与您所拥有的相同的扩展名,则没有问题。我正在寻找的解决方案是在添加新照片之前删除所有 2_avatar.*。
提前致谢!
【问题讨论】: