微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,则可能完全避免此问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐