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

被折叠的 条评论
为什么被折叠?



