Laravel 4.2抛出NotReadableException“不支持的图像类型。 GD驱动程序只能解码JPG,PNG,GIF或WebP文件。“

问题描述 投票:0回答:3

检查了大约20个解决方案后,我放弃了并需要帮助。我有2个JPG文件。两者都有适当的mime,它们对于upload_max_filesize来说不是太大,名字还可以,路径还可以。每个解决方案都是关于其中一个问题。

我的问题是当我在第一张图片上运行脚本时没关系,没有错误,对象被创建:

$image1 = Image::make(public_path()."/uploads/goodimage.jpg");

见例子:https://app.esticrm.pl/uploads/goodimage.jpg

当我在其他图片上运行时,我收到错误:

$image2 = Image::make(public_path()."/uploads/badimage.jpg");

见例子:https://app.esticrm.pl/uploads/badimage.jpg

错误信息:

Intervention \ Image \ Exception \ NotReadableException不支持的图像类型。 GD驱动程序只能解码JPG,PNG,GIF或WebP文件。

Windows和Linux上的情况相同。文件在我检查的每个图形程序和浏览器上打开。 PHP从5.5.x升级到5.6.35后,这些问题已经开始。以前很好。

laravel image jpeg gd
3个回答
1
投票

好的,我找到了解决方案:

$image2 = Image::make(file_get_contents(public_path()."/uploads/badimage.jpg"));

也适用于表单中的文件对象:

$image2 = Image::make(file_get_contents(Input::file('upload_file'));

1
投票

我有同样的问题,我的解决方法是下一个。我不得不改变nginx允许用户在/etc/nginx.conf中上传的大小,如下所示:

 http {
    client_max_body_size 100M;
 }

我还必须更改我的php.ini,以增加上传文件的大小和总大小:

upload_max_filesize = 4M
post_max_size = 16M

我希望能帮助别人


-1
投票

更改php.ini文件中的以下变量

post_max_size = 128M
upload_max_filesize = 128M

打印phpinfo()以找到您的php.ini位置。

如果它的cpanel在软件部分 - > php versions->下单击“切换到PHP选项”。然后更改值。同时将max_execution_time更改为600

© www.soinside.com 2019 - 2024. All rights reserved.