找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 94|回复: 0

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

[复制链接]

该用户从未签到

发表于 2020-4-27 12:56:15 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
织梦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;
         
        意思就是如果不存在缩略图文件,则返回原图作为缩略图。
         
        基本就可以解决问题了。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-10-7 10:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表