PHP中的远程图像大小和维度获取HTTP错误
作者:互联网
我在Amazon S3中托管了图片.我将URL static.example.com指向S3 Bucket.当我在浏览器中直接输入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
我可以在上传时将大小存储在数据库中,但这对我来说不是解决方案,我已经在S3中拥有1000x图像.当我执行@ getimagesize($path)时,错误没有显示但没有大小,没有维度.
我还查看了PHP文档getimagesize (URL).链接示例假设支持远程图像.
检查php.ini
Directive Local Value Master Value
allow_url_fopen On On
哪里错了?有没有更好的方法来获取PHP中的远程图像的图像大小和尺寸?
注意我100%确定远程图像路径是否正确.
解决方法:
检查你的php.ini文件.最可能的原因是您的服务器未设置为enable allow_url_fopen
.默认情况下,此设置有时会被禁用作为安全预防措施.
此外,顺便说一句,一旦你开始工作,你可能想确保你正在缓存结果,因为getimagesize会在返回结果之前下载整个远程图像,这会给你的服务器带来很大的阻力.
在最后一点上,您可能希望按照baba的建议检查FastImage …如果此问题未启用allow_url_fopen,则可能完全避免此问题.
标签:remote-server,php,amazon-s3,gdlib,getimagesize 来源: https://codeday.me/bug/20190901/1781339.html