首页>技术知识>织梦CMS 织梦CMS图片集从ZIP压缩包中解压图片BUG修复
DEDECMS教程
2021-08-30
这里有个BUG,上传的压缩包文件无法被读取解决方法打开 /dede/file_class.php 找到,大概在161行else if(substr($filename, -strlen($fileexp))===$fileexp)无论161行是什么,都

<a href=织梦CMS" src="https://im.25qi.com/d/file/zmcms/202108301-210203154505W6.png" />

这里有个BUG,上传的压缩包文件无法被读取

解决方法

打开 /dede/file_class.php 找到,大概在161行

else if(substr($filename, -strlen($fileexp))===$fileexp)

无论161行是什么,都改成

else if(preg_match("/\.(".$fileexp.")$/i", $filename))

继续打开 /include/zip.class.php 找到,26行的

$ret = '';

改成

$ret = array();

继续找到,大概在469行的

$byte = @fread($zip, 1); $bytes=($bytes << 8) | Ord($byte);

改成

$byte = @fread($zip, 1); $bytes=(($bytes << 40)>>32)| ord($byte);

完成,重新选择压缩包提交就可以了

自动获取压缩包里图片的名称

如果想要让每个图片都自动获取压缩包里图片的名称的话,你可以这样做

打开 /dede/album_add.php 找到,大概在201行

$imgurls .= "{dede:img ddimg='$litpicname' text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}\r\n";

改成

$imginfo = gb2utf8(basename(substr($imgold, 0, strrpos($imgold, "."))));$imgurls .= "{dede:img ddimg='$litpicname' text='$imginfo' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}\r\n";

如图

最终效果

显示全部内容...