Thinkphp5.1 使用unlink删除文件出错Permission denied(已解决)

近日在Thinkphp5.1 上传excel文件, 用后删除,但出现报错Permission denied,认真查过 路径没有问题,以下是代码

//上传
$info = $file->rule('uniqid')->validate(['size'=>1024*1024*8,'ext'=>'xls'])->move( '../uploads');
if($info){
	$filepath='../uploads/'.$info->getSaveName();
}else{
	$this->error($file->getError()) ;
}

//读取文件
$exceldata=  excel_read($filepath, 3,'B','H');  
//删除导入的excel文件            
if(file_exists($filepath)){               
	unlink($filepath);
}

 

删除文件的办法在Thinkphp3.2中试过,没有问题,网上有人说是文件夹权限问题,我设成everyone完全控制也没用,后来我想既然3.2好用,5.1不能用问题一定在框架的差别上,于是怀疑是不是文件没关闭,但也找不到关闭文件的方法, 后来看到一个帖子说是 用unset先释放$info,一语点醒梦中人, 还真就是这个问题,于是在读取文件前加上unset($info);问题解决。

//上传
$info = $file->rule('uniqid')->validate(['size'=>1024*1024*8,'ext'=>'xls'])->move( '../uploads');
if($info){
	$filepath='../uploads/'.$info->getSaveName();
}else{
	$this->error($file->getError()) ;
}
unset($info);
//读取文件
$exceldata=  excel_read($filepath, 3,'B','H');  
//删除导入的excel文件            
if(file_exists($filepath)){               
	unlink($filepath);
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值