湖中沉 发表于 2011-10-11 09:04:20

Discuz!X2.0更新到20111010后附件更新导致丢失整个帖子附件的BUG解决

打开/source/function/function_post.php文件,查找:
if($attachupdate) {
                $query = DB::query("SELECT pid, aid, attachment, thumb, remote FROM ".DB::table(getattachtablebytid($tid))." WHERE aid IN (".dimplode(array_keys($attachupdate)).")");
                while($attach = DB::fetch($query)) {
                        if($attach['pid'] == $pid) {
                                dunlink($attach);
                        }
                }
                $uaids = dimplode($attachupdate);
                $query = DB::query("SELECT aid, width, filename, filesize, attachment, isimage, thumb, remote FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
                DB::query("DELETE FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
                $attachupdate = array_flip($attachupdate);
                while($attach = DB::fetch($query)) {
                        $update = $attach;
                        $update['dateline'] = TIMESTAMP;
                        $update['remote'] = 0;
                        unset($update['aid']);
                        if($attach['isimage'] && $_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) {
                                $image->Watermark($_G['setting']['attachdir'].'/forum/'.$attach['attachment'], '', 'forum');
                                $update['filesize'] = $image->imginfo['size'];
                        }
                        DB::update(getattachtablebytid($tid), $update, "aid='".$attachupdate[$attach['aid']]."'");
                        ftpupload(array($attachupdate[$attach['aid']]), $uid);
                }
        }替换为:
if($attachupdate) {
                $query = DB::query("SELECT pid, aid, attachment, thumb, remote FROM ".DB::table(getattachtablebytid($tid))." WHERE aid IN (".dimplode(array_keys($attachupdate)).")");
                while($attach = DB::fetch($query)) {
                        if(array_key_exists($attach['aid'], $attachupdate) && $attachupdate[$attach['aid']]) {
                                dunlink($attach);
                        }
                }
                $uaids = dimplode($attachupdate);
                $query = DB::query("SELECT aid, width, filename, filesize, attachment, isimage, thumb, remote FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
                DB::query("DELETE FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
                $attachupdate = array_flip($attachupdate);
                while($attach = DB::fetch($query)) {
                        $update = $attach;
                        $update['dateline'] = TIMESTAMP;
                        $update['remote'] = 0;
                        unset($update['aid']);
                        if($attach['isimage'] && $_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) {
                                $image->Watermark($_G['setting']['attachdir'].'/forum/'.$attach['attachment'], '', 'forum');
                                $update['filesize'] = $image->imginfo['size'];
                        }
                        DB::update(getattachtablebytid($tid), $update, "aid='".$attachupdate[$attach['aid']]."'");
                        ftpupload(array($attachupdate[$attach['aid']]), $uid);
                }
        }
更新即可

kiument 发表于 2011-10-11 09:16:38

{:soso_e125:} 这文件一般没人改,直接提供文件方便些

聚聚 发表于 2011-11-1 11:21:36

湖兄好。这个我尝试修改上传并且更新了重新发帖还是出现同样的问题。不知道你有什么建议吗?

附下错误语句

• 查询语句错误
• Unknown column 'width' in 'field list'
• SELECT aid, width, attachment, isimage, remote FROM forum_attachment WHERE aid='1599'

Program messages:

•forum.php(require)
•source/module/forum/forum_viewthread.php(include)
•data/template/1_diy_forum_viewthread.tpl.php(hookscriptoutput)
•source/function/function_core.php(hookscript)
•source/function/function_core.php(plugin_wumii_related_posts_forum->viewthread_postbottom_output)
•source/plugin/wumii_related_posts/wumii_related_posts.class.php(w_get_viewthread_image_src)
•source/plugin/wumii_related_posts/require.func.php(DB::query)

页: [1]
查看完整版本: Discuz!X2.0更新到20111010后附件更新导致丢失整个帖子附件的BUG解决