Как удалить ZIP-файл с помощью PHP - PullRequest
0 голосов
/ 23 января 2012

Это мой php-код для удаления zip-файла:

$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);

Но я получил ту же ошибку, что и выше.

Ответы [ 2 ]

0 голосов
/ 23 января 2012
$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);
0 голосов
/ 23 января 2012

Кроме того, вам необходимо изменить права доступа к zip-архиву, чтобы сначала сделать его доступным для записи.

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

666 = чтение / запись для всех. Убедитесь, что возвращается true.Но поскольку вы не можете удалить файл, скорее всего, вы не сможете изменить его разрешение также, поскольку Apache не является владельцем.

777 для родительского каталога требуется только для записи новых файлов в этот каталог, выполнитене влияет на операции, которые вы можете выполнять с уже существующими файлами.

...