无法从 laravel 中的驱动器中删除图像

Unable to delete image from the drive in 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);

但是这两个操作给出相同的结果 post 被删除但是当我实际检查附件文件夹时图像仍然存在

您需要使用文件的完整路径才能将其删除。

https://laravel.com/docs/5.8/filesystem#deleting-files

尝试使用 Storage::disk('uploads')->delete($post->image);

中的完整路径

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

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

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

并且必须使用

use Illuminate\Support\Facades\Storage;