找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Discuz错误“抱歉,该附件无法读取”的解决方法

2016-3-16 11:03| 发布者: 晓刚CM| 查看: 1172| 评论: 0

最近给Discuz站点搬家,发现普通用户在下载附件时,出现‘抱歉,该附件无法读取’的提示。于是我开始网上搜索,发现也有很多类似问题,但网上的解答不是路径、权限不对,就是附件本身有问题,要么就是同样的问题没人 ...

    最近给Discuz站点搬家,发现普通用户在下载附件时,出现‘抱歉,该附件无法读取’的提示。于是我开始网上搜索,发现也有很多类似问题,但网上的解答不是路径、权限不对,就是附件本身有问题,要么就是同样的问题没人解答。没办法,只好自己想办法了。

    先是在 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 workdiz_forum_attachment a, workdiz_forum_attachment_0 b set a.tableid = 0 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_1 b set a.tableid = 1 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_2 b set a.tableid = 2 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_3 b set a.tableid = 3 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_4 b set a.tableid = 4 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_5 b set a.tableid = 5 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_6 b set a.tableid = 6 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_7 b set a.tableid = 7 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_8 b set a.tableid = 8 where a.aid = b.aid;
update workdiz_forum_attachment a, workdiz_forum_attachment_9 b set a.tableid = 9 where a.aid = b.aid;

    方法有点土,执行了很多次类似的语句,注意其中的两个数字要相同,否则麻烦大了。执行后,问题解决。

    PS: 我的版本是 Discuz! x3, 安装的时候表前缀是可以改的,所以你的表前缀可能不是 workdiz_,所以注意查看实际的表前缀。

鲜花

握手

雷人

路过

鸡蛋

最新评论

QQ|Archiver|手机版|小黑屋|感知世界 智慧家科技 ( 苏ICP备13004606号 )

GMT+8, 2018-8-18 11:05 , Processed in 0.093600 second(s), 18 queries .

Powered by WangGang X3.4 Licensed

© 2007-2015 Marry Me.

返回顶部