图片上传后压缩 Thinkphp

之前做的微信端投票功能客户反应系统卡、慢,非常不流畅,我们测试了几次并没有发现问题,后来察觉到可能是图片大小的问题,于是在手机流量网络下测试才发现,用户上传的图片一般都在2M左右,所以导致在网络不好时,系统反应太慢,而且也浪费很多图片流量;

开发时没有发现是因为一直都在网速很好的wifi环境下测试,所以忽视了图片太大占用流量的问题。

所以要对用户上传的图片进行压缩,压缩到时候手机显示的图片质量,以后就忽略原图,全部使用压缩后的新图;

ThinkPHP在图片上传后有自动压缩一张新图片的功能,新图片的名字时原图前面加thumb__,放在同一个文件夹下;

使用案例如下

import('ORG.Net.UploadFile');
        $upload = new UploadFile();
        $upload->maxSize  = 4194304;
        $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');
        $upload->savePath =  'Public/Mxun/vote/';
        //略所图
        $upload->thumb = true; //开启略所图
        $upload->thumbType = 0; //保持原始比例
        $upload->thumbMaxWidth = '50,480';
        $upload->thumbMaxHeight = '50,640';

 压缩后的图片大约在30kb左右,项目流畅度大幅提升。

存在的问题:压缩图片只能在用户上传图片后进行,如果用户上传的图片很大,网络不好,依然需要大量的时间,如果能在用户上传前就压缩好图片就好了

原文地址:https://www.cnblogs.com/tingfengqieyu/p/5459384.html