-2

这是我删除 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);

但是我得到了上面定义的相同错误。

4

2 回答 2

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);
于 2012-01-23T07:41:56.777 回答
0

此外,您必须更改 zip 的权限,以使其首先可写

chmod('./modules/'.$name.'.zip',0666);

666 = 为所有人读/写确保将返回 true。但是由于您无法删除该文件,很可能您也无法更改它的权限,因为 Apache 不是所有者。

父目录的 777 只需要将新文件写入该目录,不影响您可以对已经存在的文件执行的操作。

于 2012-01-23T07:34:15.257 回答