新聞中心
Ecshop后臺上傳圖片后強制轉(zhuǎn)換成jpg格式的小bug的調(diào)試方法
Ecshop這個開源的程序有些小小的bug,因此很多使用這個開源程序的站長朋友們都會進行二次開發(fā)和維護。今天無憂主機小編也找到了一個小小的bug ,那就是在Ecshop后臺上傳圖片有的是jpeg,png,gif等格式的圖片,但是經(jīng)過上傳后會被強制轉(zhuǎn)換為通用的jpg格式的。小編感覺挺神奇的,也許不只是小編這樣想,很多站長朋友們有時候按照需要也是想要保留上傳時候的圖片格式吧,于是小編到數(shù)據(jù)庫中查看了下保存的路徑也是轉(zhuǎn)換為了jpg格式的。小編仔細對程序和模板進行了分析和調(diào)試,經(jīng)過小編一番倒騰后終于找到了這個小小的bug的改善方法。下面小編為大家分享下具體的解決方案。 首先找到主機根目錄下的文件includes\cls_image.php 文件。大概在此程序的262行找到這個函數(shù):function_exists('imagejpeg')。 把以下代碼替換,具體如下所示: if (function_exists('imagejpeg')) { $filename .= '.jpg'; imagejpeg($img_thumb, $dir . $filename,95); } elseif (function_exists('imagegif')) { $filename .= '.gif'; imagegif($img_thumb, $dir . $filename); } elseif (function_exists('imagepng')) { $filename .= '.png'; imagepng($img_thumb, $dir . $filename); } else { $this->error_msg = $GLOBALS['_LANG']['creating_failure']; $this->error_no = ERR_NO_GD; return false; } 修改為: /* 生成文件 */ if ($org_info['mime']=='image/jpeg') { $filename .= '.jpg'; imagejpeg($img_thumb, $dir . $filename,95); } elseif ($org_info['mime']=='image/gif') { $filename .= '.gif'; imagegif($img_thumb, $dir . $filename); } elseif ($org_info['mime']=='image/png') { $filename .= '.png'; imagepng($img_thumb, $dir . $filename); } else { $this->error_msg = $GLOBALS['_LANG']['creating_failure']; $this->error_no = ERR_NO_GD; return false; } 其實這是個if判斷,而無憂主機小編修改的本質(zhì)是把: function_exists('imagejpeg') 修改成了 $org_info['mime']=='image/jpeg'。修改完成后再檢查一編是否修改到位。確認按照修改后保存上傳到對應(yīng)的路徑下替換原程序文件。這時候我們再登陸Ecshop的網(wǎng)站后臺在網(wǎng)站的右上角有個更新緩存,更新緩存后小編又試著傳了一張png格式的商品圖片發(fā)布到網(wǎng)站的前臺。這時候點擊屬性查看的時候果然是png格式的了。感謝大家對無憂主機的大力支持,小編也希望以后能寫出更加優(yōu)秀的文章幫到大家。 相關(guān)文章推薦閱讀: ECSHOP后臺商品詳情無法上傳圖片 如何取消ECSHOP“后臺的云提醒未激活 點擊激活” ECSHOP后臺添加新商品文本編輯器工具欄無法顯示問題匯總 ECSHOP網(wǎng)站從WINDOWS虛擬主機遷移搬家到LINUX主機下報錯的解決方案
本文地址:http://www.gle-technology.com/ecshop/14003.html