我在亚马逊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)时,错误不是显示,而是没有大小,没有维度。
我还研究了PHPDocumentsgetimagesize (URL)。链接示例应该支持远程映像。
检查php.ini
Directive Local Value Master Value
allow_url_fopen On On我哪里错了?在PHP中是否有更好的方法来获取远程图像的大小和尺寸?
注意到我100%确信远程图像路径是正确的。
发布于 2013-03-01 05:55:00
检查您的php.ini文件。最可能的原因是您的服务器没有设置为enable allow_url_fopen。作为安全防范措施,有时默认情况下禁用此设置。
另外,一旦完成了这个任务,您可能需要确保缓存结果,因为getimagesize将在返回结果之前下载整个远程映像,这将给服务器带来很大的阻力。
关于最后一点,您可能需要按照FastImage的建议查看爸爸.如果这个问题不是enable allow_url_fopen,它可能会完全避免这个问题。
https://stackoverflow.com/questions/15151378
复制相似问题