thinkphp5 unlink 删除文件报错 Permission denied

57 篇文章 1 订阅

        最近做项目有一个批量导入功能,本能的就想着导入后应该删除文件,有两处都要用到这个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);  //删除文件
?>


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值