如何解决php unlink失败的问题
程序员文章站
2022-03-13 19:06:59
...
php unlink失败的解决办法:首先打开相应的PHP示例文件;然后通过“unset($info);”解除图片的进程占用;最后重新执行“@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视频教程》】
以上就是如何解决php unlink失败的问题的详细内容,更多请关注其它相关文章!
上一篇: 怎样阻止微信小程序自动打开?
下一篇: 电脑临时文件能删吗?
推荐阅读
-
我遇到一个奇怪的问题,php代码里面凡是含有//这样的注释,include 失败
-
javascript中的变量如何传到php中,一个高难问题 100大分!
-
公司接了一个PHP的项目,准备选一套开源的Framework,牛人给推荐一下,该如何解决
-
mysql - php上传含中文名的图片失败问题
-
php中使用addslashes函数报错问题的解决方法_PHP
-
php如何实现ppt转图片以及php调用com组件问题的详细介绍
-
php警告Creating default object from empty value 问题的解决方法
-
myEclipse8.5和php的环境配置,该如何解决
-
如何正确解决PHP缺少JSON包问题_PHP教程
-
php 的数组合并问题怎么解决