CHMOD 666 и Access отказали в GetImagesize
-
22-10-2019 - |
Вопрос
Прежде всего, это не дубликат: Разрешение отказано в GetImagesize
Я получил следующее код, где я сидел chmod
Для изображения, и тогда я не буду получать его размер.
@chmod($path."/".$filename, '0666');
getimagesize($path . "/" . $filename);
Но если я установите chmod, я получаю это сообщение об ошибке:
Не удалось открыть поток: разрешение отказано в [...
В чем проблема? Все файлы и каталог имеет одинаковую группу и владелец - www-data
.
Решение
На самом деле вам действительно нужно Chmod, прежде чем Getimagesize?
Если так, возможно, вы можете попытаться поставить Umask перед CHMOD. что-то вроде этого?
$old = umask(0);
chmod($path,0777);
umask($old);
Другие советы
Попробуйте поставить A / до пути. Не уверен насчет PHP, но я знаю, что Python не добавит начальные / к определенным операциям пути, поэтому он может искать относительный путь Absolute:
@chmod("/". $path."/".$filename, '0666');
getimagesize("/". $path . "/" . $filename);
Прежде всего, chmod
не будет успешным (разрешение будет отказано; может быть, ошибка, которую вы получаете от CHMOD?) Если www-data
(Предполагая, что это пользователь вашего веб -сервера) не имеет доступа к записи в каталог $path
. Анкет Гарантировать www-data
имеет Читать промежутку всем родителям $path
а также Написать промежутке $path
.
Кроме того, убедитесь, что вы используете абсолютные пути, оба в chmod
а также getimagesize
.