检查了大约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后,这些问题已经开始。以前很好。
好的,我找到了解决方案:
$image2 = Image::make(file_get_contents(public_path()."/uploads/badimage.jpg"));
也适用于表单中的文件对象:
$image2 = Image::make(file_get_contents(Input::file('upload_file'));
我有同样的问题,我的解决方法是下一个。我不得不改变nginx允许用户在/etc/nginx.conf中上传的大小,如下所示:
http {
client_max_body_size 100M;
}
我还必须更改我的php.ini,以增加上传文件的大小和总大小:
upload_max_filesize = 4M
post_max_size = 16M
我希望能帮助别人
更改php.ini文件中的以下变量
post_max_size = 128M upload_max_filesize = 128M
打印phpinfo()以找到您的php.ini位置。
如果它的cpanel在软件部分 - > php versions->下单击“切换到PHP选项”。然后更改值。同时将max_execution_time
更改为600