php imagecreatefromjpeg 报错 error: Not a JPEG file: starts with 0x89 0x50

当尝试使用PHP的imagecreatefromjpeg函数加载非JPEG格式图片时,可能会遇到'NotaJPEGfile:startswith0x890x50'的错误。这通常是因为图片实际格式与扩展名不符。解决方法是先通过file_get_contents获取图片内容,然后用imagecreatefromstring来创建图片资源。这样可以处理任何格式的图片数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php 使用 imagecreatefromjpeg 创建图片资源报错

error: Not a JPEG file: starts with 0x89 0x50

这个报错原因是因为 图片实际不是 jpg 图片,但是图片格式是 jpg .

例如把一张 png 格式的图片,手动把后缀改成 jpg 就会造成这个错误

解决方法:

//$img = imagecreatefromjpeg('http://www.example.com/image.jpg');


//上面的代码改成下面的方式
$image_data = file_get_contents('http://www.example.com/image.jpg');

$img = imagecreatefromstring($image_data);

至此问题解决

相关连接:https://stackoverflow.com/questions/23530458/php-download-jpeg-image-from-url

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值