Ecshop v2.7.3 后台上传图片,图片格式被转换为jpg问题

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

后台上传图片为 png或gif格式时,前台图片显示依然为jpg格式,数据库存值也是如此。
后经调试查出bug,下面贴出个人修改方法。
















打开 includes\cls_image.php 文件,查找代码 if (function_exists('imagejpeg'))【 262行】
  1. /* 生成文件 */
  2. if (function_exists('imagejpeg'))
  3. {
  4. $filename .= '.jpg';
  5. imagejpeg($img_thumb, $dir . $filename,95);
  6. }
  7. elseif (function_exists('imagegif'))
  8. {
  9. $filename .= '.gif';
  10. imagegif($img_thumb, $dir . $filename);
  11. }
  12. elseif (function_exists('imagepng'))
  13. {
  14. $filename .= '.png';
  15. imagepng($img_thumb, $dir . $filename);
  16. }
  17. else
  18. {
  19. $this->error_msg = $GLOBALS['_LANG']['creating_failure'];
  20. $this->error_no=ERR_NO_GD;

  21. return false;
  22. }
复制代码



替换为
  1. /* 生成文件 */
  2. if ($org_info['mime']=='image/jpeg')
  3. {
  4. $filename .= '.jpg';
  5. imagejpeg($img_thumb, $dir . $filename,95);
  6. }
  7. elseif ($org_info['mime']=='image/gif')
  8. {
  9. $filename .= '.gif';
  10. imagegif($img_thumb, $dir . $filename);
  11. }
  12. elseif ($org_info['mime']=='image/png')
  13. {
  14. $filename .= '.png';
  15. imagepng($img_thumb, $dir . $filename);
  16. }
  17. else
  18. {
  19. $this->error_msg = $GLOBALS['_LANG']['creating_failure'];
  20. $this->error_no=ERR_NO_GD;

  21. return false;
  22. }
复制代码

回答:





这个不要修改,要不批量处理图片时会出错。之前按你这个修改了。导入淘宝数据包的时候就出问题了。原本是正确的,但是修改之后出问题了。无法导入图片。最后发现原来是修改了图片的这个地方。所以官方这样写是有他原因的。这个地方不需要修改。