关于修正ecshop上传图片强制转换成jpg格式的bug

2016-09-11 20:39 来源:www.chinab4c.com 作者:ecshop专家

在ecshop后台上传图片为 png或gif格式时,前台展示的图片显示依然为jpg格式,数据库存值也是如此。ECSHOP程序强制所有相册显示图为JPG通用格式了。有没方法,让原图与相册图都同个格式,如PNG,还是PNG

最模板结果一番倒腾之后,研究出以下方法。

找出ecshop文件includes\\cls_image.php 文件,查找代码 if (function_exists('imagejpeg')) 【 262行】

        /* 生成文件 */

        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;

        } 

仔细核对下是 function_exists('imagejpeg')  修改成了 $org_info['mime']=='image/jpeg'