phpcms编辑器上传图片大小控制解决办法,重要提示,本文讲的是phpcms编辑器的图片大小限制,而不时phpcms附件上传大小限制。
首先还是给大家介绍下,phpcms附近上传大小限制的办法吧
phpcms默认的上传单个文件大小限制是2M。所以超过2M的附件上传就会上传不了。提示信息如下所示
有点同学觉得这个值太大了,或者太小,那么怎么修改呢
设置方法:
登陆phpcms后台–站点设置–修改–附件设置–允许附件大小,输入你想要的值,如下图
以上方法,大家通过百度都能找到,下面程序员人生网站首席工程师为大家讲解的是,phpcms编辑器的图片上传大小控制解决办法,由于phpcms的编辑器是用ck二次开发的,里面很多功能是高度定制,又有很多bug(真的有很多bug,以后有时间和大家一起分析)
默认phpcms编辑器上传图片大小是不限制的,如果网站带有会员系统,那就完蛋了,用户可以随意上传大小,耗费大量服务器资源
解决办法如下:
打开网站文件,根目录phpcmsmodulesattachmentattachments.php,大概在38行
将以下代码
$site_allowext = $site_setting['upload_allowext'];$attachment = new attachment($module,$catid,$siteid);$attachment->set_userid($this->userid);$a = $attachment->upload('upload',$site_allowext);if($a){$filepath = $attachment->uploadedfiles[0]['filepath'];$fn = intval($_GET['CKEditorFuncNum']);$this->upload_json($a[0],$filepath,$attachment->uploadedfiles[0]['filename']);$attachment->mkhtml($fn,$this->upload_url.$filepath,'');}
换成我这个代码
/*wlsh 20161212 新增编辑器图片上传大小控制*/ $upload_maxsize= $site_setting['upload_maxsize']; $upload_maxsize_2= $upload_maxsize *1024;//系统后台文件上传单位是KB,而upload单位为B $a = $attachment->upload('upload',$site_allowext,$upload_maxsize_2); if($a){ $filepath = $attachment->uploadedfiles[0]['filepath']; $fn = intval($_GET['CKEditorFuncNum']); $this->upload_json($a[0],$filepath,$attachment->uploadedfiles[0]['filename']); $attachment->mkhtml($fn,$this->upload_url.$filepath,''); }else{ echo ""; }
这样替换之后,刚刚第一步设计的大小,在这里也可以用了,代码解释下,只要就是在upload里面加了一个upload_maxsize参数,然后做了一个判断