【问题标题】:How to delete old images from public folder on update using Laravel如何使用 laravel 在更新时从公用文件夹中删除旧图像
【发布时间】: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);
  • 您必须先获取旧图像,然后将其取消链接,然后再放入新文件并替换到数据库,
  • 尽量避免在一个文件夹中保存多个文件。如果一个文件夹中有几千个文件(不使用子文件夹),文件读取操作可能会很慢

标签: php laravel image public


【解决方案1】:

尝试使用这个:

File::delete($file_path)

【讨论】:

  • 调用未定义的方法 phpDocumentor\Reflection\File::delete()
  • @syed1234 让我们在顶部文件上使用 Illuminate\Support\Facades\File
猜你喜欢
  • 2019-11-26
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 2014-12-04
  • 2011-02-22
  • 2014-03-24
  • 2017-08-21
相关资源
最近更新 更多