首页 > 解决方案 > 无法从 laravel 中的驱动器中删除图像

问题描述

在 post 控制器中调用 destroy 方法时,我无法删除文件(由用户上传)。

我可以将文件上传到我的驱动器,即 root/public/uploads/attachment

这是我的文件系统

'uploads' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
    ],

这是我在控制器中尝试过的

 public function destroy(Post $post)
{
    $post=Post::find($post->id);
    Storage::disk('uploads')->delete($post->image);
    $post->categories()->detach();
    $post->tags()->detach();
    $post->delete();
    return redirect('admin/post')->with('message','Deleted Sucessfully');
}

我也试过

unlink(public_path().'/uploads/'.$post->image);

但是这两个动作都给出了相同的结果帖子被删除但是当我物理检查附件文件夹时图像仍然存在

标签: phpsqllaravelblogs

解决方案


如果您指定磁盘然后尝试它(图像的完整路径)..

Storage::disk('uploads')->delete(public_path().'/uploads/'.$post->image);

或者

Storage::delete($post->image);

并且必须使用

use Illuminate\Support\Facades\Storage;

推荐阅读