织梦cms
您所在的位置:封程中个人博客 > CMS > 织梦cms >

织梦dedecms5.7不能自动提取第一张图片为缩略图 最有效的解决方案

字号+ 作者:封程中 来源:封程中个人博客 2015-07-06 23:48 阅读(0) 我要评论(0)

网上好像很多人都有这样的问题,刚刚开始可以,后来就不行了 百度了好几页 各种改法,各种尝试,后来其实只要改一句代码就可以了 可能是因为服务器上禁用了fsockopen() 函数造...

网上好像很多人都有这样的问题,刚刚开始可以,后来就不行了


 

百度了好几页

各种改法,各种尝试,后来其实只要改一句代码就可以了

可能是因为服务器上禁用了fsockopen() 函数造成的,在用fsockopen()的地方用 stream_socket_client()代替就可以了。

具体修改地方是 /include/dedehttpdown.class.php 第507行

$this->m_fp = @fsockopen($this->m_host, $this->m_port, $errno, $errstr,10);
替换为
$this->m_fp = @stream_socket_client($this->m_host . ‘:’ . $this->m_port, $errno, $errstr,10);
 

后来发现可能还有点问题

如果大家做了上面的操作还不行 可以参考下面

在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;

 

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

 

基本就可以解决问题了

 

来源:(QQ号:604849147),原创文章如转载,请注明本文链接:http://fcz8k.com/dedemcs/273.html

 

1.如果您觉得文章帮助了您,可以点击下面的广告来支持我,谢谢!2.本站的原创文章,请转载时务必注明文章作者和来源,谢谢!3.作者投稿可能会经我们编辑修改或补充,并且会注明版权来源,谢谢!

相关文章
  • 织梦cms使用阿里大鱼短信接口进行短信发送

    织梦cms使用阿里大鱼短信接口进行短信发送

    2016-05-14 21:44

  • 织梦cms发邮件功能bug修复,邮件功能重写

    织梦cms发邮件功能bug修复,邮件功能重写

    2016-05-14 21:46

  • 织梦cms 自定义表单导出功能的实现详细步骤

    织梦cms 自定义表单导出功能的实现详细步骤

    2016-04-25 22:46

  • 织梦Cms会员中心我的收藏新增一个描述字段显示

    织梦Cms会员中心我的收藏新增一个描述字段显示

    2016-02-26 18:28

网友点评
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)