温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么解决php unlink失败的情况

发布时间:2021-03-08 14:00:11 来源:亿速云 阅读:534 作者:TREX 栏目:编程语言

这篇文章主要讲解了“怎么解决php unlink失败的情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决php unlink失败的情况”吧!

php unlink失败的解决办法:首先打开相应的PHP示例文件;然后通过“unset($info);”解除图片的进程占用;最后重新执行“@unlink”操作即可。

怎么解决php unlink失败的情况

本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。

最近做我网站的更换头像功能时,涉及到了PHP的文件上传。

我采用的方案是用户先上传到服务器,服务器再上传到阿里云的OSS,中间会有一个把图片临时存储到服务器的过程。于是在使用php的@unlink(删除指定文件)方法时发现了删除失败的问题。

开始以为是我的路径名写错了,后来确认这个参数没有错。删除失败的原因是图片仍然被进程占用,所以想要成功执行@unlink操作,我们最好手动释放下文件对象,避免因为被其他线程或进程占用而导致删除失败,代码片段如下:

// [API接口-用户更新头像]
public function setAvatar()
{
// 获取表单上传文件
$file = $this->request->file('avatar');
if ($file) {
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->rule('date')->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {//文件上传到服务器成功->接下来上传到OSS
        $filePath = ROOT_PATH . 'public' . DS . 'uploads/' . $info->getSaveName();
       
        $oss = new Oss();
        $result = $oss->putObject($filePath); 
                  
if ($result) { //上传到OSS成功                              
unset($info);//解除图片的进程占用
@unlink($filePath);
return success(['avatar' => $result['fileSrc']], '头像更新成功');
}
        }
}
}

不得不说,自学是困难重重的,原因不在于外,在于内。这一次为了追寻所想,斩断了退路,辞掉了安稳的工作,希望不要让这些牺牲,毫无价值可言。

感谢各位的阅读,以上就是“怎么解决php unlink失败的情况”的内容了,经过本文的学习后,相信大家对怎么解决php unlink失败的情况这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI