在Thinkphp中使用unlink来删除一个目录下的文件,代码如下:
public function deldir($dir = "") {
dump($dir);
//先删除目录下的文件:
$dh = opendir($dir);
while ($file = readdir($dh)) {
if ($file != "." && $file != "..") {
$fullpath = $dir . "\\" . $file;
if (!is_dir($fullpath)) {
dump($fullpath);
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
closedir($dh);
//删除当前文件夹:
if (rmdir($dir)) {
return true;
} else {
return false;
}
然而它不能删除文件夹下的最后一个文件,我试着写死路径并直接url访问这个方法,发现可以正常运作,调用的话就会出现我说的问题
调用的代码如下:
$files = request()->file('myfile');
$realCName = input("realCName");
$tempArr = explode("-", $realCName);
$account = $tempArr[0];
$cname = $tempArr[1];
$errorReport = "";
$tempDir = ROOT_PATH . 'public' . DS . 'uploads' . DS . "$realCName";
foreach ($files as $file) {
// 移动到框架应用根目录/public/uploads/ 目录下,并且使用原名
$info = $file->move($tempDir, '');
if ($info) {
} else {
// 上传失败获取错误信息
$errorReport = $errorReport.$file->getError();
}
}
//开始上传
$uploadResult = $this->uploadFile($account, $cname);
$tempArr = $uploadResult->getData();
if ($tempArr['code'] === 0) {
//开始删除临时文件夹
$deleteResult = $this->deldir($tempDir);
if($deleteResult === FALSE){
$errorReport =$errorReport. "删除临时文件夹出错";
}
}
return $errorReport;
报错图片如下:
相当奇怪,求各位高手热心相助。
没权限。。。