织梦园模板网提供云优cms模板,pbootcms模板,Wordpress主题模板等各类企业新闻资讯网站模板下载服务。织梦园网站模板交流群
用户名:
密码:
注册
注册后享受折扣价

dedecms5.7 不能自动提取第一张图片为缩略图 实用的解决方案

织梦园模板 / 2020-12-21 / 收藏

dedecms很坑爹的 昨天我写了一篇不能提取缩略图之后发现还有点问题

后来又继续找,现在才找到问题

在dede/inc/inc_archives_functions.php的第505行

if($GLOBALS[‘cfg_ddimg_full’]==‘Y’)@ImageResizeNew($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
else@ImageResize($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
if(!is_file($cfg_basedir.$litpic))$litpic=”;

这里调用了@ImageResize函数对图片进行缩小,并将缩小的图片另存为$litpic。但实际上ImageResize函数会再对图片缩小的尺寸进行判断,如果原图已经小于目标尺寸,则不进行缩放直接返回。导致并未进行另存为$litpic的操作。如此一来$litpic的文件并未生成,根据上述代码的***后一行,自然就返回空值。

因此,解决办法有二:

一是在系统基本参数-附件设置中将缩略图的宽度跟高度都设为一个较小的值,以确保大部分的图片都会进行缩小。

二是把上述***后一行改为

if(!is_file($cfg_basedir.$litpic))$litpic=$oldpic;

意思就是如果不存在缩略图文件,则返回原图作为缩略图。

基本就可以解决问题了

 

相关辅助文档

收缩