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

Разрешено отклонение - php unlink

У меня есть два файла: b.php и test.txt

<?php 
$b = "test.txt";
unlink($b);
?>

и ошибка: Предупреждение: unlink (test.txt) [function.unlink]: Permission denied

почему? b.php и test.txt - 777 и одна и та же группа/логин

если я устанавливаю 777 в родительский каталог, я могу выполнить unlink, но мне нужно установить 777 и вернуться к 755?

4b9b3361

Ответ 1

Вы (как в процессе, выполняющем b.php, либо через CLI, либо в веб-сервере), необходимо написать доступ к каталогу, в котором находятся файлы. Вы обновляете содержимое каталога, поэтому доступа к файлу недостаточно.

Обратите внимание: если вы используете функцию PHP chmod() для установки режима файла или папки на 777, вы должны использовать 0777, чтобы убедиться, что номер правильно интерпретируется как восьмеричное число.

Ответ 2

Сначала вам нужно закрыть файл, используя fclose($handle);, который не удаляется, поскольку файл используется. Поэтому сначала закройте файл, а затем попробуйте.

Ответ 3

// Path relative to where the php file is or absolute server path
chdir($FilePath); // Comment this out if you are on the same folder
chown($FileName,465); //Insert an Invalid UserId to set to Nobody Owner; for instance 465
$do = unlink($FileName);

if($do=="1"){ 
    echo "The file was deleted successfully."; 
} else { echo "There was an error trying to delete the file."; } 

Попробуйте это. Надеюсь, что это поможет.

Ответ 4

Разрешение файла в порядке (0777), но я думаю, что вы на общем сервере, поэтому для правильного использования файла используйте; 1. создать правильный путь к файлу

// delete from folder
$filename = 'test.txt';
$ifile = '/newy/made/link/uploads/'. $filename; // this is the actual path to the file you want to delete.
unlink($_SERVER['DOCUMENT_ROOT'] .$ifile); // use server document root
// your file will be removed from the folder

Этот небольшой код сделает магию и удалит любой выбранный файл из любой папки, если будет создан фактический путь к файлу.