Размер и размер удаленного изображения в PHP при получении ошибки HTTP [закрыто]
Я разместил изображения в Amazon S3. И я указываю URL static.example.com
на корзину S3. Когда я напрямую ввожу URL http://static.example.com/path/mypic.png
в браузере, изображение существует, я тоже могу просматривать и загружать. Но когда я хочу получить размер и размер изображения в PHP, он показывает эту ошибку.
`getimagesize($path)`
И в этом заключается ошибка.
A PHP Error was encountered
Severity: Warning
Message: getimagesize(http://static.example.com/path/mypic.png) [function.getimagesize]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
Filename: views/template.php
Line Number: 98
Я могу сохранить размер в базе данных во время загрузки, но это не решение для меня, у меня уже есть 1000-кратные изображения в S3. Когда я это делаю @ getimagesize($path)
, ошибки не отображаются, но ни размера, ни измерения.
Я также заглянул в документацию PHP getimagesize (URL). Предполагается, что пример ссылки поддерживает удаленные изображения.
Проверка php.ini
Directive Local Value Master Value
allow_url_fopen On On
Где я ошибаюсь? Есть ли лучший способ получить размер изображения и размер удаленного изображения в PHP?
ПРИМЕЧАНИЕ Я на 100% уверен, что путь к удаленному изображению правильный.
1 answers
Проверьте свой файл php.ini
. Наиболее вероятная причина заключается в том, что ваш сервер не настроен на enable allow_url_fopen
. Этот параметр иногда отключается по умолчанию в качестве меры предосторожности.
Кроме того, как только вы получите эту работу, вам может потребоваться убедиться, что вы кэшируете результаты, потому что getimagesize
загрузит весь удаленный образ перед возвращением результатов, что сильно затянет ваш сервер.
По этому последнему пункту вы, возможно, захотите проверить Быстрый образ , как предложил баба... и это может просто полностью избежать проблемы, если эта проблема не enable allow_url_fopen
.