php - PHP 中的远程图像大小和尺寸出现 HTTP 错误

标签 php amazon-s3 remote-server getimagesize gdlib

<分区>

我在 Amazon S3 中托管图像。我将 URL static.example.com 指向 S3 Bucket。当我在浏览器中直接输入网址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 中已经有 1000 倍的图像。当我执行 @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 将在返回结果之前下载整个远程图像,这会增加很多拖到你的服务器上。

关于最后一点,您可能需要查看 FastImage正如 baba 所建议的那样...如果这个问题不是 enable allow_url_fopen,它可能会完全避免这个问题。

关于php - PHP 中的远程图像大小和尺寸出现 HTTP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15151378/

相关文章:

linux - 从 Apache Nifi 中的 ExecuteProcess 调用远程 shell 脚本时,无法将环境变量作为敏感字段传递

ssh - 可以在ssh上使用sudo进行编辑的文本编辑器吗?

没有本地克隆的远程存储库上的 git 操作

php - CakePHP saveAll 方法

javascript - 在 Node js 中以 zip 格式从 amazon s3 存储桶下载图像

php - 需要想法来创建判断算法

amazon-s3 - 无服务器 s3 上传访问被拒绝

c# - 从 Amazon s3 流中读取文本

php - Zend 框架 2 : subqueries

php - 以页面而非用户身份在 Facebook 墙上发帖