【问题标题】:PHP download jpeg image from urlPHP从url下载jpeg图片
【发布时间】:2014-05-07 23:55:56
【问题描述】:

我有一个简单的测试代码

imagecreatefromjpeg("http://www.eventmag.ru/uploads/users/483/11483/event/logo/14632/5ee58096b7238c30.jpg");

但它不能工作

gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x89 0x50
PHP Warning:  imagecreatefromjpeg(): 'http://www.eventmag.ru/uploads/users/483/11483/event/logo/14632/5ee58096b7238c30.jpg' is not a valid JPEG file in /var/www/site/releases/test.php on line 5

什么问题? PHP 5.4.4-14

gd

GD Support => enabled
GD Version => 2.0
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.4.9
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => unknown
PNG Support => enabled
libPNG Version => 1.2.49
WBMP Support => enabled

Directive => Local Value => Master Value
gd.jpeg_ignore_warning => 0 => 0

gettext

GetText Support => enabled

我通过 php cli 执行脚本。

【问题讨论】:

    标签: php jpeg gd


    【解决方案1】:

    您尝试下载的图片实际上是 PNG,而不是 JPEG。

    是的,我知道 URL 以 .jpg 结尾,但这并不意味着它实际上是 JPEG 图像。

    imagecreatefromstring() 能够从其标题中自动检测支持的图像类型。所以你应该能够做这样的事情:

    $image_data = file_get_contents('http://www.example.com/image.jpg_or_png_or_whatever');
    $img = imagecreatefromstring($image_data);
    

    【讨论】:

      猜你喜欢
      • 2016-03-30
      • 2015-09-15
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2017-07-20
      相关资源
      最近更新 更多