今天做图片上传时遇到问题,上传失败则需要删除新上传的图片,结果删除的时候报错
unlink(‘此处为文件路径‘): Permission denied
查了一下网上有人说是文件夹权限问题,最后解决,不是文件夹权限问题
这里删除失败是因为文件还没有被释放,并非权限不足
上传成功之后使用 unser($info) 释放文件,释放文件之后就能正常删除啦!
$file = Request()->file(‘img‘); if (!empty($file)) { $info = $file->move(config(‘文件保存路径‘) . $aaa. DS . $bbb); if($info){ // 成功上传后 获取上传信息 $img = str_replace(‘\\‘, ‘/‘,config(‘文件保存路径‘) . $aaa . DS . $bbb . DS . $info->getSaveName()); //上传成功之后释放文件 unset($info); //查出并删除旧文件并 $worn_img = db(‘表名称‘)->where(‘id‘,$id)->value(‘img‘); //旧文件截取为可删除状态 $worn_img = str_replace(‘\\‘, ‘/‘, config(‘文件保存路径‘) . $aaa . DS . $bbb . DS . substr($worn_img,-10)); try { unlink($worn_img); } catch (\Exception $e) { //图片删除失败,删除新上传的图片 $delete_img = str_replace(‘\\‘, ‘/‘, config(‘文件保存路径‘) . $aaa . DS . $bbb . DS . substr($img,-10)); unlink($delete_img); return ‘图片删除失败!‘; } }else { // 上传失败获取错误信息 recordErrorLog($file->getError()); return ‘上传失败!‘; } }
原文地址:https://www.cnblogs.com/blibli/p/12356310.html
时间: 2024-10-08 01:36:59