Как получить разрешение на использование unlink()?
Я создаю сайт, и у него есть эта функция для загрузки файла, и этот файл загружается на сервер
Я просто новичок в php, я загружаю xampp, и я запускаю этот сайт, который я сделал на своей локальной машине.
Мой сайт похож на то, что вы загружаете файл, а затем этот файл будет загружен на сервер, но когда я попробовал unlink(), потому что, когда я пытаюсь удалить имя файла в базу данных, я также хочу удалить этот файл на сервере, но вместо этого Я получил сообщение об ошибке, и он говорит "Разрешение отклонено" .
Вопрос:
Как я могу получить разрешение на использование unlink();?
Я запускаю это только на своей локальной машине, используя xampp
Ответы
Ответ 1
Ошибка отказа в доступе происходит из-за того, что вы пытаетесь удалить файл, не имея достаточных/прав доступа для этого.
Для этого вы должны использовать учетную запись суперпользователя или быть тем же пользователем, который загрузил файл.
Вы можете перейти в каталог из командной строки и проверить разрешения, установленные для файла.
Самое простое решение - loggin как администратор /root и удалить файл.
Вот еще одна работа:
// define if we under Windows
$tmp = dirname(__FILE__);
if (strpos($tmp, '/', 0)!==false) {
define('WINDOWS_SERVER', false);
} else {
define('WINDOWS_SERVER', true);
}
$deleteError = 0;
if (!WINDOWS_SERVER) {
if (!unlink($fileName)) {
$deleteError = 1;
}
} else {
$lines = array();
exec("DEL /F/Q \"$fileName\"", $lines, $deleteError);
}
if ($deleteError) {
echo 'file delete error';
}
И еще несколько: PHP Manual, unlink(), Post 106952
Я бы порекомендовал, всегда сначала проверять руководство PHP (в случае, если ваш вопрос касается PHP), просто зайдите на страницу с функцией, с которой у вас проблемы, и просто нажмите кнопку поиска CTRL+F
в своем браузере и введите, например, Windows
, и, как результат, в вашем случае вы найдете по крайней мере 7 связанных должностей с этим или очень близким к тому, что вы искали.
Ответ 2
Прочитайте этот URL
Как использовать функцию Unlink()
Я нашел эту информацию в комментариях функции unlink()
В Windows System и Apache запрещенный доступ к файлу является обычной ошибкой для отсоединения файла. Чтобы удалить файл, вы должны изменить файл owern. Пример:
<?php
chown($TempDirectory."/".$FileName,666); //Insert an Invalid UserId to set to Nobody Owern; 666 is my standard for "Nobody"
unlink($TempDirectory."/".$FileName);
?>
Итак, попробуйте что-то вроде этого:
$Path = './doc/stuffs/sample.docx';
chown($Path, 666);
if ( unlink($Path) )
echo "success";
else
echo "fail";
РЕДАКТИРОВАТЬ 1
Попробуйте использовать это в пути:
$Path = '.'.DIRECTORY_SEPARATOR.'doc'.DIRECTORY_SEPARATOR.'stuffs'.DIRECTORY_SEPARATOR.'sample.docx';