找回密码
 注册加入

扫一扫,极速登录

QQ登录

只需一步,快速开始

搜索
查看: 5748|回复: 2

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

[复制链接]
发表于 2011-10-11 09:04:20 | 显示全部楼层 |阅读模式
打开/source/function/function_post.php文件,查找:
  1. if($attachupdate) {
  2.                 $query = DB::query("SELECT pid, aid, attachment, thumb, remote FROM ".DB::table(getattachtablebytid($tid))." WHERE aid IN (".dimplode(array_keys($attachupdate)).")");
  3.                 while($attach = DB::fetch($query)) {
  4.                         if($attach['pid'] == $pid) {
  5.                                 dunlink($attach);
  6.                         }
  7.                 }
  8.                 $uaids = dimplode($attachupdate);
  9.                 $query = DB::query("SELECT aid, width, filename, filesize, attachment, isimage, thumb, remote FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  10.                 DB::query("DELETE FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  11.                 $attachupdate = array_flip($attachupdate);
  12.                 while($attach = DB::fetch($query)) {
  13.                         $update = $attach;
  14.                         $update['dateline'] = TIMESTAMP;
  15.                         $update['remote'] = 0;
  16.                         unset($update['aid']);
  17.                         if($attach['isimage'] && $_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) {
  18.                                 $image->Watermark($_G['setting']['attachdir'].'/forum/'.$attach['attachment'], '', 'forum');
  19.                                 $update['filesize'] = $image->imginfo['size'];
  20.                         }
  21.                         DB::update(getattachtablebytid($tid), $update, "aid='".$attachupdate[$attach['aid']]."'");
  22.                         ftpupload(array($attachupdate[$attach['aid']]), $uid);
  23.                 }
  24.         }
复制代码
替换为:
  1. if($attachupdate) {
  2.                 $query = DB::query("SELECT pid, aid, attachment, thumb, remote FROM ".DB::table(getattachtablebytid($tid))." WHERE aid IN (".dimplode(array_keys($attachupdate)).")");
  3.                 while($attach = DB::fetch($query)) {
  4.                         if(array_key_exists($attach['aid'], $attachupdate) && $attachupdate[$attach['aid']]) {
  5.                                 dunlink($attach);
  6.                         }
  7.                 }
  8.                 $uaids = dimplode($attachupdate);
  9.                 $query = DB::query("SELECT aid, width, filename, filesize, attachment, isimage, thumb, remote FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  10.                 DB::query("DELETE FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  11.                 $attachupdate = array_flip($attachupdate);
  12.                 while($attach = DB::fetch($query)) {
  13.                         $update = $attach;
  14.                         $update['dateline'] = TIMESTAMP;
  15.                         $update['remote'] = 0;
  16.                         unset($update['aid']);
  17.                         if($attach['isimage'] && $_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) {
  18.                                 $image->Watermark($_G['setting']['attachdir'].'/forum/'.$attach['attachment'], '', 'forum');
  19.                                 $update['filesize'] = $image->imginfo['size'];
  20.                         }
  21.                         DB::update(getattachtablebytid($tid), $update, "aid='".$attachupdate[$attach['aid']]."'");
  22.                         ftpupload(array($attachupdate[$attach['aid']]), $uid);
  23.                 }
  24.         }
复制代码
更新即可
发表于 2011-10-11 09:16:38 | 显示全部楼层
{:soso_e125:} 这文件一般没人改,直接提供文件方便些
回复 支持 反对

使用道具 举报

发表于 2011-11-1 11:21:36 | 显示全部楼层
湖兄好。这个我尝试修改上传并且更新了重新发帖还是出现同样的问题。不知道你有什么建议吗?

附下错误语句

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

Program messages:

•[Line: 0060]forum.php(require)
•[Line: 0808]source/module/forum/forum_viewthread.php(include)
•[Line: 0001]data/template/1_diy_forum_viewthread.tpl.php(hookscriptoutput)
•[Line: 1269]source/function/function_core.php(hookscript)
•[Line: 1230]source/function/function_core.php(plugin_wumii_related_posts_forum->viewthread_postbottom_output)
•[Line: 0155]source/plugin/wumii_related_posts/wumii_related_posts.class.php(w_get_viewthread_image_src)
•[Line: 0091]source/plugin/wumii_related_posts/require.func.php(DB::query)

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册加入  

本版积分规则

Archiver|手机版|小黑屋|Discuz!扩展中心 ( 浙ICP备14042422号-1 )|网站地图QQ机器人

GMT+8, 2024-5-4 06:51 , Processed in 0.170382 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表