Intereting Posts
Zend Framework 2 – Формы аннотаций и Doctrine2 – Обрезаемая фатальная ошибка – ObjectManager PHP избегает статических классов, чтобы избежать зависимостей, но мне нужно использовать глобальные везде Перенос с сервера> Сервер> Клиент без загрузки на сервер Функция php mail (): как отображать изображения и использовать стиль в сообщении html PHP Вызов метода экземпляра с помощью call_user_func в том же классе Массив PHP для массива javascript PHPUnit загружает все классы одновременно. Вызывает PHP Неустранимая ошибка: не удается переопределить класс imagescreatetruecolor с белым фоном Как долго должен быть мой пароль соли, и SHA-256 достаточно хорош? Правильный способ использования LIKE '% {$ var}%' с подготовленными операторами? Загрузить представление в переменную PHP Curl Paypal Песочница Как я могу интерполировать существующий литерал строки php внутри json-файла? Отправка приглашения календаря ics с помощью Swift Mailer и Send Grid Как написать значения, поступающие из ввода формы в json, используя php

Как удалить zip-файл с помощью php

Это мой 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); 

Но у меня такая же ошибка определена выше.

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

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

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

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

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