2015-06-22 2 views
1

Это сводит меня с ума уже не могу удалить каталог и его содержимое с помощью кода:Отказано в доступе при удалении файла в PHP

public function deleteDirectory($path) { 
    $files = glob($path . '/*'); 
    foreach ($files as $file) { 
     is_dir($file) ? self::deleteDirectory($file) : unlink($file); 
    } 
    rmdir($path); 
    return; 
    } 

Как я могу видеть это в состоянии удалить папку, но когда речь идет о к файлу, который, я думаю, отключает ($ file) случай, он не позволяет мне удалять bc разрешения. Я понятия не имею, что я могу сделать в данный момент, любая помощь будет очень благодарна.

+0

добавить директиву chmod для файлов; если на Linux. chown, если в Windows –

+0

у вас есть допустимые разрешения на запись в содержащем каталоге? для удаления файла требуется обновить каталог контейнера, что означает, что на нем должны быть написаны разрешения. например 'rm/foo/bar/baz' означает, что вы должны иметь' + w' on/foo/bar –

+1

нестатические методы следует вызывать с помощью '$ this' или late-static-binding' static :: deleteDirectorey() ' , или вы делаете его 'public static function deleteDirectory()'. Stoneage 5.3 извините, 5.6 не будет :-D – DanFromGermany

ответ

2

Это зависит от пользователя, выполняющего код PHP, который вы указали.
Вы используете его как sudo или кто то кто имеет доступ к этому каталогу & файлов?

Возможно, это PHP код является руководит WWW-данные, Nginx, или каким-либо пользователь, как этот, которые не имеют разрешения в этот каталог. Проверьте разрешение и повторите попытку.

+0

Комментарии не предназначены для расширенного обсуждения; этот разговор был [перемещен в чат] (http://chat.stackoverflow.com/rooms/81292/discussion-on-answer-by-skbly7-permission-denied-when-deleting-file-in-php). –