最近做图片处理的时候,发现webman自动安装的intervention/image版本过于老旧,频繁出现内存泄露(传2M的图内存消耗140多M,导致报错。并不是所有图片会这样,是个别图片会这样),另外还出现手机端上传图片出现旋转的情况(传图后,不会正确的校正图片方位,如竖向的图,上传图片会变成横向图,该问题在ios端出现),另外还有些小问题。
目前我已经手动升级了intervention/image 3.7版本,已经解决上述问题。
建议官方把自动安装intervention/image依赖包的版本升到最新版本,现在已经是3.7版本了。
webman框架本身没有依赖或者强制 intervention/image 版本。
webman-admin有设置版本,后续会陆续更新到最新版本。
你好,请问下我执行 composer require intervention/image:^3.7 升级 不成功怎么解决、
Problem 1
Problem 2
webman/admin设置了版本,你升级不了的,进webman/admin里改下intervention/image版本,改成最新版
升级版本后,你项目里涉及到图片处理的接口,要改下代码,不然会出错,可以看下intervention/image文档
有个问题,这个情况我也遇到了,但是我的php版本是7.3且项目已经进入测试阶段了,升级3.7需要php>=8.1,这种情况我该如何解决?
处理2M图片占用很大内存之前有人调试过,好像gd扩展版本有关系。
如果是内存问题可以加大下 memory_limit。
也可以尝试手动下载静态PHP测试下,下载地址 https://www.workerman.net/download
大概率是和GD扩展有关系,因为具体报错是:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /www/wwwroot/home_admin/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php on line 154
我试试是否可以更新gd库解决这个问题
这个问题不用解决了,限制下图片的宽高就好了,gd扩展处理图片,如果图片的宽高过于高,就会占用很大的内存,导致上面这个报错。所以上传图片的时候限制一下