PHP 函数filesize获取文件大小错误,一直不变

本文介绍了一种通过调整图片质量来优化文件大小的方法。在图片大小超过预设值时,算法会自动降低图片质量,同时确保质量不低于一定阈值。在第二次检查文件大小时,使用clearstatcache()函数清除缓存,确保读取的是最新文件大小。

在第二次获取filesize 文件大小时,使用 clearstatcache(); 函数清除缓存,解决问题!

 		$tmp_size = filesize($file);
        $out_size = 1024 * $out_size;
        if($out_size != 0 && $tmp_size > $out_size) {
            $quality = (int) ceil(($out_size / $tmp_size) * 100);
            if($quality > 60)
                $quality -= 50;
            elseif ($quality > 30)
                $quality -= 20;
            elseif ($quality > 20)
                $quality -= 10;
            Image::make($file)->save($file, $quality);
            clearstatcache();
            if(filesize($file) > $out_size) {
                return self::outputImageBySize($file,$out_size/1024);
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值