【发布时间】:2019-11-25 08:55:57
【问题描述】:
我想在更新时删除公用文件夹中的旧图像:
我的控制器代码:
try {
$path = public_path('profile_images');
@mkdir($path, '0777', true);
$image = base64_decode($image);
$imageName = str_random(10).'.'.'png';
Storage::disk('profile-image')->put($imageName, $image);
$path = asset('public/profile_images/' . $imageName);
$this->userBasicInfo->where('user_id', $user_id)->update(['profile_pic' => $path]);
return response(['status' => true, 'message' => 'Image Uploaded successfully', 'data' => ['profile_image' => $path]], 200);
} catch (\Exception $ex) {
return response(['status' => false, 'message' => $ex->getMessage()], 500);
}
如何实现删除功能? 您的帮助将不胜感激。
【问题讨论】:
-
你能编辑我的代码吗?
-
没有帮助我
-
您可以存储相对路径而不是资产 url。所以在你的情况下
$imageName,这样你以后想更新个人资料图片时可以调用Storage::disk('profile-image')->delete($oldImageName);。 -
您必须先获取旧图像,然后将其取消链接,然后再放入新文件并替换到数据库,
-
尽量避免在一个文件夹中保存多个文件。如果一个文件夹中有几千个文件(不使用子文件夹),文件读取操作可能会很慢