Я не могу понять, почему file_exists() не находит мой файл, хотя путь кажется правильным.Файл не существует, хотя путь кажется правильным
Вот мой сценарий:
if($_POST['delete-avatar'] == 'on') {
$q = execute_query("SELECT avatar FROM gj_customers WHERE id_customer = '$_GET[id]'");
$customer = $q->fetch_assoc();
$img_path = $_SERVER['DOCUMENT_ROOT'] . WEBSITE_ROOT . $customer['avatar'];
var_dump($img_path);
if(!empty($customer['avatar']) && file_exists($img_path)){
unlink($img_path);
}
}
Я на MAMP, мой сайт находится в HTDOCS/gamejutsu/WWW /, WEBSITE_ROOT содержит '/ gamejutsu/WWW /' и аватары в IMG/аватары/,
var_dump на $ img_path возвращает меня: /Applications/MAMP/htdocs/gamejutsu/www/img/avatars/Sonik_avatar.jpg.
Если я пойду на localhost: 8888/gamejutsu/www/img/avatars/Sonik_avatar.jpg изображение будет отображаться.
Я никогда не вхожу в блок if. Если я удалю тест file_exists, у меня есть предупреждение: unlink (/Applications/MAMP/htdocs/gamejutsu/www/img/avatars/Sonik_avatar.jpg): Нет такого файла или каталога в/Applications/MAMP/htdocs/gamejutsu/www/admin/members.php on line 67
Я почти уверен, что у меня что-то не хватает, но все кажется мне хорошо, и я использую тот же метод где-то еще на своем веб-сайте без каких-либо проблем.
Благодарим за помощь.
Благодарим вас за ввод. var_dump (realpath ($ img_path)) возвращает false. cd/Applications/MAMP/htdocs/gamejutsu/www/img/avatars/работает так, что путь хорош. Но разрешения не совпадают для всех файлов (хотя они были загружены одинаково). У некоторых есть -rw-r-r--, а у некоторых есть -rwxrwxrwx –
И если вы меняете разрешение на использование вручную (777), это работает?Это странно, потому что если у вас есть разрешение на чтение, вы можете получить доступ к файлу через realpath и file_exists .. Вы пытались выполнить команду cd с пути из var_dump ($ img_path)? Плюс я обновил свой ответ –
Я попытался загрузить новый аватар, и у него есть -rw-r-r--. Для этого файла у меня может быть real_path, так что вы, кажется, правы. Я думаю, что разрешения изменились, когда я изменил папку приложения. Тем не менее, я не знаю, как изменить разрешения (я ищу его). –