thinkphp5 unlink 删除文件报错 Permission denied

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37682202/article/details/80026201

        最近做项目有一个批量导入功能,本能的就想着导入后应该删除文件,有两处都要用到这个unlink函数删除,结果第一次成功执行,第二次就死活不行了,琢磨了半天,从网上搜到了好多同样的问题,总结主要有以下三种情况:

1、没有释放变量,导致没有删除权限。(例:unset($info))

2、打开文件后,并没有关闭问价指针。(例:fclose($handle))

 $file = request()->file('modelfile'); //接收文件
 if(empty($file))  //判断是否有文件上传
 {
     $this->error('请选择上传文件!');
 }
 // 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->move(ROOT_PATH.'public'.DS.'upload/excel/'); 
//获取文件(日期/文件)
$filename = ROOT_PATH.'public'.DS.'upload/excel/'.$info->getSaveName();
//接下来就是执行相关操作
$handle = fopen($filename,'r'); //打开文件,进行数据读取
……
fclose($handle); // 关闭指针,也就相当于关掉文件
unset($info);  //开始释放变量
unlink($filename); //删除文件
3、磁盘文件权限不足,也可以如下操作:
a.Linux操作系统:手动更改文文件权限777
b.Window操作系统:将文件夹所有者更改为 Everyone,并设置 Everyone 对该文件夹的权限 读写权限
c.php程序删除前修改权限
<?php
chmod($filename,0777);  //修改权限
unlink($filename);  //删除文件
?>


猜你喜欢

转载自blog.csdn.net/qq_37682202/article/details/80026201
今日推荐