"景先生毕设|www.jxszl.com

织梦dedecms5.7不能自动提取第一张图片为缩略图怎么办

2022-10-29 16:27编辑: www.jxszl.com景先生毕设
织梦dedecmsV.VII不能自动提取第I.张图片为缩略图怎么办?
网上好像很多人都有这样的问题,刚刚开始可以,后来就不行了.

百度了好几页,
各种改法,各种尝试,后来其实只要改I.句代码就可以了.
可能是因为服务器上禁用了fsockopen()函数造成的

 更多精彩就在: 51免费论文网|www.jxszl.com 
,在用fsockopen()的地方用stream_socket_client()代替就可以了.
具体修改地方是/include/dedehttpdown.class.php第V0VII行
$this->m_fp=@fsockopen($this->m_host,$this->m_port,$errno,$errstr,I.0);
替换为
$this->m_fp=@stream_socket_client($this->m_host.‘:’.$this->m_port,$errno,$errstr,I.0);

后来发现可能还有点问题
如果大家做了上面的操作还不行可以参考下面

在dede/inc/inc_archives_functions.php的第V0V行
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的操作.如此I.来$litpic的文件并未生成,根据上述代码的最后I.行,自然就返回空值.
因此,解决办法有II:
I.是在系统基本参数-附件设置中将缩略图的宽度跟高度都设为I.个较小的值,以确保大部分的图片都会进行缩小.
II是把上述最后I.行改为
if(!is_file($cfg_basedir.$litpic))$litpic=$oldpic;

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

基本就可以解决问题了.


原文链接:http://www.jxszl.com/biancheng/dedecms/75021.html