Discuz教程网

修复Discuz开启远程附件后,DIY缩略图路径错误的BUG

[复制链接]
原创
authicon dly 发表于 2018-7-8 01:22:54 | 显示全部楼层 |阅读模式
当Discuz开启FTP远程附件(或者其他插件远程附件后),DIY的缩略图被上传到远程空间后,Discuz没有把缩略图同步标记为远程状态,仍然调用本地连接,导致缩略图无法显示,手动更新DIY缓存可正常,但每次都手动去更新不现实,1314学习网给出修复此BUG的解决办法:
打开:source\function\function_block.php
1.找到
  1. if($blockitem['picflag'] == '1') {
  2.   $replacevalue = $_G['setting']['attachurl'].$replacevalue;
  3. } elseif ($blockitem['picflag'] == '2') {
  4.   $replacevalue = $_G['setting']['ftp']['attachurl'].$replacevalue;
  5. }
复制代码
修改为
  1. if ($blockitem['picflag'] == '2') {
  2.         $replacevalue = (preg_match('/^https?:\/\//is', $replacevalue) ? '' : $_G['setting']['ftp']['attachurl']).$replacevalue;
  3. } else {
  4.         if(file_exists($_G['setting']['attachdir'].$replacevalue)) {
  5.                 $replacevalue = $_G['setting']['attachurl'].$replacevalue;
  6.         }else{
  7.                 $replacevalue = (preg_match('/^https?:\/\//is', $replacevalue) ? '' : $_G['setting']['ftp']['attachurl']).$replacevalue;
  8.         }
  9. }
复制代码

2.找到
  1. if($blockitem['picflag'] == '1') {
  2.         $replacevalue = $_G['setting']['attachurl'].$blockitem['thumbpath'];
  3. } elseif ($blockitem['picflag'] == '2') {
  4.         $replacevalue = $_G['setting']['ftp']['attachurl'].$blockitem['thumbpath'];
  5. }
复制代码
修改为
  1. if ($blockitem['picflag'] == '2') {
  2.         $replacevalue = (preg_match('/^https?:\/\//is', $blockitem['thumbpath']) ? '' : $_G['setting']['ftp']['attachurl']).$blockitem['thumbpath'];
  3. }else{
  4.         if(file_exists($_G['setting']['attachdir'].$blockitem['thumbpath'])) {
  5.                 $replacevalue = $_G['setting']['attachurl'].$blockitem['thumbpath'];
  6.         }else{
  7.                 $replacevalue = (preg_match('/^https?:\/\//is', $blockitem['thumbpath']) ? '' : $_G['setting']['ftp']['attachurl']).$blockitem['thumbpath'];
  8.         }
  9. }
复制代码

3.找到
  1. @unlink($_G['setting']['attachdir'].'./'.$thumbpath);
复制代码
在下边添加:
  1. C::t('common_block_item')->update($itemid, array('picflag' => 2));
  2. $replacevalue = (preg_match('/^https?:\/\//is', $thumbpath) ? '' : $_G['setting']['ftp']['attachurl']).$thumbpath;
复制代码
修改后更新下对应的页面的DIY缓存,以便实时生效


X3.4已改好文件下载
function_block.zip (9.72 KB, 下载次数: 5)



上一篇:关闭Discuz论坛前台插件新版提示和后台新版插件置顶功能
下一篇:PHP move_uploaded_file安全限制绕过漏洞(CVE-2015-2348)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-4-29 09:29

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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