Я пытаюсь использовать функцию PHP unlink()
для удаления определенного документа в папке. Эта конкретная папка уже была назначена для полных прав для пользователя IIS.
Код:
$Path = './doc/stuffs/sample.docx'; if (unlink($Path)) { echo "success"; } else { echo "fail"; }
Он не дает возврата. Sample.docx находится на этом конкретном пути. Добрый совет.
Я нашел эту информацию в комментариях функции unlink ()
В Windows System и Apache запрещенный доступ к файлу является обычной ошибкой для отсоединения файла. Чтобы удалить файл, вы должны изменить владельца файла. Пример:
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';
Попробуй это:
$Path = './doc/stuffs/sample.docx'; if (file_exists($Path)){ if (unlink($Path)) { echo "success"; } else { echo "fail"; } } else { echo "file does not exist"; }
Если вы получаете файл, не существует, у вас неправильный путь. Если нет, это может быть проблема с разрешениями.
Это должно работать, как только вы закончите с разрешением. Также попробуйте
ini_set('display_errors', 'On');
Это скажет вам, что не так
Вам нужен полный путь к файлу, представляющему интерес. Например: C: \ doc \ stuff \ sample.docx. Попробуйте использовать __FILE__
или __FILE__
чтобы получить относительную позицию файла, чтобы вы могли перейти к интересующему файлу.
define("BASE_URL", DIRECTORY_SEPARATOR . "book" . DIRECTORY_SEPARATOR); define("ROOT_PATH", $_SERVER['DOCUMENT_ROOT'] . BASE_URL); $path = "doc/stuffs/sample.docx"; if (unlink(ROOT_PATH . $Path)) { echo "success"; } else { echo "fail"; } // http://localhost/book/doc/stuffs/sample.docx // C:/xampp/htdocs\book\doc/stuffs/sample.docx