111
帖子封面图插件不好使,上传提示“目录创建失败”
搜代码发现这段代码:
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 '封面图网址'
通过以上两个操作,帖子封面图插件功能基本恢复正常!
希望作者下一个版本修复一下。
TAGS
帖子封面图
插件