Подтвердить что ты не робот

Как получить разрешение на использование unlink()?

Я создаю сайт, и у него есть эта функция для загрузки файла, и этот файл загружается на сервер

Я просто новичок в php, я загружаю xampp, и я запускаю этот сайт, который я сделал на своей локальной машине. Мой сайт похож на то, что вы загружаете файл, а затем этот файл будет загружен на сервер, но когда я попробовал unlink(), потому что, когда я пытаюсь удалить имя файла в базу данных, я также хочу удалить этот файл на сервере, но вместо этого Я получил сообщение об ошибке, и он говорит "Разрешение отклонено" .

Вопрос:
Как я могу получить разрешение на использование unlink();?

Я запускаю это только на своей локальной машине, используя xampp

4b9b3361

Ответ 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';