laravel - 在 Laravel 5.8 中更新个人资料照片时删除以前的照片
问题描述
上传新照片时如何删除以前的照片?
这是我的更新头像功能
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.*。
提前致谢!
解决方案
如果你是昨天向我建议这个的朋友,请再次发布。这是我的错误,我没有检查文件夹名称。
$folder = 'avatar';
Storage::delete($folder.'/'.$user->avatar);
再次回答不是我的,昨天回答的已经被删除了,因为我认为它不起作用。
推荐阅读
- python-3.x - 如何设置 django 管理面板不从 aws s3 加载 css,而是从默认值加载?
- python - 如何在numpy中实现两层Keras conv1d?
- python - 移动 auc 曲线的曲线图例
- python - 获取返回空字典的存储 blob 的属性
- mapbox-gl-js - 有没有办法结合两个光栅mapbox layears
- c++ - 存储散列字符串 ID
- r - 如何:在 R 中为 3 个分类变量和一个连续变量创建图?
- html - 使用 jQuery 将另一个 HTML 页面加载到当前 HTML 页面中
- javascript - 将应用程序部署到 Heroku 会引发错误 { path=“/” path=“/favicon.ico” }。但在本地主机上运行
- python - 有没有一种简单的方法可以在 Python/PyMc3 中实现 Normal-inverse-wisart 函数?