Вопрос

Прежде всего, это не дубликат: Разрешение отказано в 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top