首页 > 技术支撑 > 织梦学习

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

分类: 织梦学习  发布者: 会员:虎哥
织梦dedecms5.7不能自动提取第一张图片为缩略图怎么办 ?
网上好像很多人都有这样的问题,刚刚开始可以,后来就不行了 。
 
百度了好几页,
各种改法,各种尝试,后来其实只要改一句代码就可以了。
可能是因为服务器上禁用了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;
 
意思就是如果不存在缩略图文件,则返回原图作为缩略图。
 
基本就可以解决问题了。

感谢 会员:虎哥 分享文章,亦感谢文章原作者为我们提供如此优秀信息,如果此信息对您有帮助,请购买正版以支持作者!
---------------------------
此信息仅供个人学习、研究免费使用,禁止非法转播。
免责申明:本信息由 会员:虎哥 搜集整理发布,版权归原作者及发布者所有,您如有异议请 举报 或者 版权申诉
六出奇e站内部资源仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!
六出奇e站内部资源不提供任何保证,并不承担任何法律责任。
如果该信息对您的版权或者利益造成损害,请提供相应的资质证明提交 版权投诉,我们将于3个工作日内予以处理。
六出奇e站内部资源采用 BY-NC-SA 协议进行授权 转载请注明原文链接:
织梦dedecms5.7不能自动提取第一张图片为缩略图怎么办 http://www.lcqez.com/news/270.html

嘿,我来帮您!

找不到需要的信息?请给我们留言

注意:本需求仅接收资源需求信息。
系统自动过滤不符合要求的信息!

其他信息请提交 站内信息 给技术客服!