php - 无法从 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);
但是这两个动作都给出了相同的结果帖子被删除但是当我物理检查附件文件夹时图像仍然存在
解决方案
如果您指定磁盘然后尝试它(图像的完整路径)..
Storage::disk('uploads')->delete(public_path().'/uploads/'.$post->image);
或者
Storage::delete($post->image);
并且必须使用
use Illuminate\Support\Facades\Storage;
推荐阅读
- sql - 如何在 SQL Server 中从 CustomerCode 中筛选设计
- tabs - 如何更改搜索选项卡
- php - PHP Mailchimp API v3,传递参数以外的字段被忽略
- sas - 根据 SAS 中的第一次观察标记 ID
- java - Maven 模块来扩展现有模块的功能
- reactjs - 如何在 React 的类组件中使用 mapStateToProps?
- javascript - 内联切换图像 onclick 事件
- python - 如何在python中将数字转换为NaN值?
- flutter - Flutter audio_service 设置评分
- java - 由于 groupBy 操作,OptaPlanner 中的 ClassCastException