无法从 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;
我无法在调用 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;