Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的远程图像大小和维度获取HTTP错误_Php_Amazon S3_Remote Server_Getimagesize_Gdlib - Fatal编程技术网

PHP中的远程图像大小和维度获取HTTP错误

PHP中的远程图像大小和维度获取HTTP错误,php,amazon-s3,remote-server,getimagesize,gdlib,Php,Amazon S3,Remote Server,Getimagesize,Gdlib,我在AmazonS3中托管图像。我将URLstatic.example.com指向S3 Bucket。当我直接输入URLhttp://static.example.com/path/mypic.png在浏览器中,图像存在,我也可以查看和下载。但是当我想在PHP中获得图像的大小和尺寸时,它显示了这个错误 `getimagesize($path)` 这就是错误所在 A PHP Error was encountered Severity: Warning Message: getimagesi

我在AmazonS3中托管图像。我将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中已经有1000个图像。当我执行
@getimagesize($path)
时,不会显示错误,但不会显示大小和维度

我还研究了PHP文档。假设链接示例支持远程图像

检查
php.ini

Directive           Local Value     Master Value
allow_url_fopen     On              On
我错在哪里?有没有更好的方法在PHP中获取远程图像的图像大小和维度


注意我100%确定远程映像路径正确。

检查您的
php.ini
文件。最可能的原因是服务器未设置为。作为安全预防措施,这是一种有时默认禁用的设置

另外,作为一种旁白,一旦您完成了这项工作,您可能需要确保您正在缓存结果,因为
getimagesize
将在返回结果之前下载整个远程图像,这将给服务器带来很大的阻力


在最后一点上,您可能希望按照。。。若这个问题不是
enable allow\u url\u fopen

,那个么它可能完全可以避免这个问题,我不能保证它们中的任何一个,但这个页面有一些功能可以解决这个问题(主要依赖于只抓取前几行并尝试从中抓取所有信息)选中的
php.ini
allow\u url\u fopen
已启用,我编辑了问题。您是否检查了是否可以抓取任何远程图像?尝试从您控制的另一个网站抓取。在询问您的问题之前,请使用搜索。关于404的哪一部分,你实际上不想问?那么如果我问你一个问题:如何使用PHP的内置函数如getimagesize来解决HTTP远程访问问题?你已经完全可以回答了吗?