0

帖子封面图插件修复

V xinyu
2025-05-05 121

帖子封面图插件不好使,上传提示“目录创建失败”

搜代码发现这段代码:

    if (!is_dir($path)) {
        mkdir($path, 0755, true);
    } else {
        message(-1, '目录创建失败');
    }

这个逻辑有问题,先注释掉吧,就可以上传了。

需要注意的是,这段代码逻辑中有一个潜在的逻辑错误:如果目录已经存在,按照正常逻辑,这应该是一个成功的情况,而不是显示“目录创建失败”的错误信息。一个更合理的处理可能是在目录存在时什么都不做,或者显示一个“目录已存在”之类的消息,而不是当前的错误处理逻辑。

然后发现帖子发布后,封面图数据并没有写入数据库。
看了下插件安装代码,写入数据库这句

db_exec("ALTER TABLE `{$tablepre}thread` ADD COLUMN IF NOT EXISTS `cover` varchar(2048) NOT NULL DEFAULT '' COMMENT '封面图网址'");

直接在phpmyadmin里运行也会报错。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS `cover` varchar(2048) NOT NULL DEFAULT '' COMMENT '封面图网址' at line 1

这个错误消息说明在尝试执行的ALTER TABLE语句中存在语法错误。正如我之前提到的,ADD COLUMN IF NOT EXISTS是一个非标准的扩展,实际上并不被MySQL支持。这就是为什么你遇到了这个语法错误的原因。

原理先不管了,直接改下数据库,不判断存不存在了。

ALTER TABLE `bbs_thread` ADD COLUMN `cover` VARCHAR(2048) NOT NULL DEFAULT '' COMMENT '封面图网址'

通过以上两个操作,帖子封面图插件功能基本恢复正常!


最新回复 (0)

    暂无评论

    • Xiuno论坛
      2

请先登录后发表评论!

返回
请先登录后发表评论!