Discuz!X2.0 歉仄,该附件无法读取的办理要领

  部门站长在进级了Discuz X2.0的补丁后,会呈现普通用户在下载附件的时候显示“歉仄,该附件无法读取”的提示,但下载分已经扣除,如此之来用户就会发生不满。但打点组的用户不扣下载分的是可以下载的。

  首先查察 forum_attachment.php ,确定谁人提示是从这里报出的。报这个提示的环境有许多,而本文碰着的环境是附件不存在,而附件不存在,打点组却可以下载? 进一步跟踪数据库,发明问题。

  Discuz 的附件是分表存放的,表名像这样 pre_forum_attachment_0,pre_forum_attachment_1等。这里共有0~9的编号共10个表,别的有一个表 pre_forum_attachment,生存了全是编号,像aid(附件ID),tid(帖子ID),uid(用户ID),tableid(这个就是暗示详细附件信息生存在哪个表中)。

  然后,找出下载失败的附件的id, 搜索 pre_fourm_attachment,获得tableid, 再从相应的附件表中查找, 发明没有找到, 但在另一个附件表中找到了, 说明这个问题的原因是附件表中的tableid差异步造成的。这样的话办理要领就清朗了,就是同步tabeid。

办理要领就是执行几条sql语句,像这样:

update pre_forum_attachment a, pre_forum_attachment_0 b set a.tableid = 0 where a.aid = b.aid;
update pre_forum_attachment a, pre_forum_attachment_1 b set a.tableid = 1 where a.aid = b.aid;
......
update pre_forum_attachment a, pre_forum_attachment_9 b set a.tableid = 9 where a.aid = b.aid;

  要领固然有点啰嗦,但可以办理问题。留意个中的"pre_forum_attachment_数字"和"a.tableid = 数字"两个数字要沟通,不然会呈现错误。执行后,问题办理。虽然照旧发起在执行SQL操纵前,先备份数据库。

  别的一点,表前缀pre_改成你安装时利用的表前缀,默认是pre_。

Discuz! X2 R20120628 简体GBK下载

Discuz!X2.0 负疚,该附件无法读取的治理方式

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/10521.html