这是我删除zip文件的php代码:
$name = "zip_file_name";
chmod('./modules/',0777);
unlink('./modules/'.$name.'.zip');
此处modules
是包含的zip文件的文件夹。当我写这段代码时,我收到了一个错误:
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: unlink(./modules/texts.zip) [<a href='function.unlink'>function.unlink</a>]: Permission denied</p>
<p>Filename: controllers/super_admin.php</p>
<p>Line Number: 590</p>
</div>
如果我的代码中有任何错误?
我也像这样检查chmod
:
chmod('./modules/'.$name.'.zip',0777);
但我在上面定义了相同的错误。
答案 0 :(得分:0)
此外,您必须更改zip的权限,使其首先可写
chmod('./modules/'.$name.'.zip',0666);
666 =为所有人读/写 确保返回true。但由于您无法删除该文件,因此很可能您也无法更改其权限,因为Apache不是所有者。
只需要将新文件写入该目录,父目录只需要777,不要影响对已经存在的文件执行的操作。答案 1 :(得分:0)
$name = "zip_file_name";
$sPath = "./modules/" . $name . ".zip";
$aFilePath = explode("/", $sPath);
$i = 0;
$sLastFolder = "";
foreach ($aFilePath as $sFolder) {
$i++;
if (file_exists($sLastFolder . $sFolder) || is_dir($sLastFolder . $sFolder)) {
$this->make_writeable($sLastFolder . $sFolder);
$iOldumask = umask(0); // important part #1
chmod($sLastFolder . $sFolder, 0777);
umask($iOldumask); // important part #2
$sLastFolder .= $sFolder . "/";
}
}
unlink($sPath);