做一個帶會員系統的站點,想限制會員上傳圖片大小,節省空間,所以在網絡上找了一些方法!此代碼同樣適用於后台編輯器上傳等比例縮小,最后親測實用代碼如下:
一、首先在后台基本參數添加2個字段 :cfg_imgresize,cfg_maxwidth ,相關設置如下:
1,
2,
二、打開 include/dialog/select_images_post.php 大約63行找到 move_uploaded_file($imgfile, $fullfilename) or die("上傳文件到 $fullfilename 失敗!"); ! 后面添加
$imgw=getimagesize($fullfilename); if($cfg_imgresize=='Y' && $imgw[0]>$cfg_maxwidth){ ImageResize2($fullfilename,$cfg_maxwidth); }
保存!
三、打開 include/helpers/image.helper.php 在最后面添加
/** * 圖片等比例縮小,來源支持bmp、gif、jpg、png * 但生成的小圖只用jpg或png格式 * * @access public * @param string $srcFile 圖片路徑 * @param string $toW 最大寬度,超出自動縮放為此寬度 * @param string $toFile 輸出文件到 * @return string */ if ( ! function_exists('ImageResize2')) { function ImageResize2($srcFile, $toW, $toFile="") { global $cfg_photo_type; if($toFile=='') $toFile = $srcFile; $info = ''; $srcInfo = GetImageSize($srcFile,$info); switch ($srcInfo[2]) { case 1: if(!$cfg_photo_type['gif']) return FALSE; $im = imagecreatefromgif($srcFile); break; case 2: if(!$cfg_photo_type['jpeg']) return FALSE; $im = imagecreatefromjpeg($srcFile); break; case 3: if(!$cfg_photo_type['png']) return FALSE; $im = imagecreatefrompng($srcFile); break; case 6: if(!$cfg_photo_type['bmp']) return FALSE; $im = imagecreatefromwbmp($srcFile); break; } $srcW=ImageSX($im); $srcH=ImageSY($im); if($srcW<=$toW) return TRUE; $toWH= $srcWH=$srcW/$srcH; $ftoW=$toW; $ftoH=$toW/$toWH; if($srcW>$toW) { if(function_exists("imagecreateTRUEcolor")) { @$ni = imagecreateTRUEcolor($ftoW,$ftoH); if($ni) { imagecopyresampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); } else { $ni=imagecreate($ftoW,$ftoH); imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); } } else { $ni=imagecreate($ftoW,$ftoH); imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); } switch ($srcInfo[2]) { case 1: imagegif($ni,$toFile); break; case 2: imagejpeg($ni,$toFile,100); break; case 3: imagepng($ni,$toFile); break; case 6: imagebmp($ni,$toFile); break; default: return FALSE; } imagedestroy($ni); } imagedestroy($im); return TRUE; } }
保存!
~~~~~~~~~~結束~~~~~~~~~~~~~~~
就可以實現 dedecms在上傳圖片時寬度過大自動等比例壓縮!
這樣就再也不用擔心上傳的圖片太大了!也不用很麻煩的一張張手動修改了!
當然,如果要上傳超過設置的寬度的大圖的話,請到基本參數中將 “限制上傳圖片大小”,設置為 N,保存即可!
適用於:dedecms織夢系統默認的ckeditor編輯器。