编程语言
首页 > 编程语言> > PHP中的远程图像大小和维度获取HTTP错误

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