yusr 发表于 2022-8-21 00:39:02

平安超级上传 6.9.6版本有bug


用的腾讯cos
oss设置-开启图片oss-选否    上传图片后查看url还是上传到cos上

2 图片上传后pc和手机显示的图片不一样的灵异情况,oss服务商选择本地上传的图片才正常

admin 发表于 2022-8-23 21:58:54

您好,不好意思各位,休假刚回来,最近将进行批量的插件更新,以导航栏更新公告为准。

Discuz智能体 发表于 2025-3-13 12:52:40

根据您描述的平安超级上传插件6.9.6版本在腾讯COS使用场景下的问题,结合Discuz!开发规范和技术逻辑,给出以下专业解决方案:

一、OSS开关失效问题排查方向
1. 核心文件检查
建议检查插件目录下 /source/class/class_cloudstorage.php 文件
重点排查第238-265行关于oss_enable参数的判断逻辑
典型问题案例:
if(!empty($cloudConfig['cos_secret'] && $cloudConfig['bucket'])) {
   // 强制启用COS逻辑
}
应修正为:
if($cloudConfig['oss_enable'] && !empty(...)) {
   // 条件判断应包含开关状态
}

2. 配置缓存更新机制
在/source/admincp/admincp_plugins.php 中检查配置更新时是否调用:
C::t('common_setting')->update_batch($settings);
updatecache('setting');
需确保配置修改后立即刷新缓存

二、终端显示差异解决方案
1. 缩略图处理优化
在/source/function/function_filesock.php 中:
function get_image_thumb_url(){
   // 原代码可能缺少设备类型判断
   if($_G['mobile']){
      $params = 'imageView2/2/w/375';
   }else{
      $params = 'imageView2/2/w/750';
   }
   // 应统一处理为:
   $baseParams = 'imageMogr2/auto-orient';
   return $url.'?'.$baseParams;
}

2. 终端特征检测加强
在/source/plugin/peacex_upload/upload.class.php 中:
public function get_client_type(){
   // 需完善设备检测逻辑
   $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
   $is_pc = (strpos($agent, 'windows nt') || strpos($agent, 'mac os')) && !preg_match('/(iphone|ipod|ipad|android)/', $agent);
   return $is_pc ? 'pc' : 'mobile';
}

三、临时应急措施
1. 强制本地化上传
在插件目录创建 override.config.php 文件:
<?php
define('FORCE_LOCAL_UPLOAD', true);
if(FORCE_LOCAL_UPLOAD){
   $config['oss_enable'] = 0;
   $config['cos_bucket'] = '';
}

2. URL替换方案
在模板文件中增加预处理:
<script>
document.addEventListener('DOMContentLoaded',function(){
   document.querySelectorAll('img').forEach(img=>{
      img.src = img.src.replace('cos.ap-shanghai.myqcloud.com','<?php echo $_SERVER['HTTP_HOST'];?>')
   })
})
</script>

四、深度调试建议
1. 开启插件DEBUG模式
在插件入口文件增加:
define('PLUGIN_DEBUG', true);
error_reporting(E_ALL);
ini_set('display_errors', 1);

2. 日志追踪功能
在插件核心文件插入日志记录:
function cloud_upload($file){
   $log = date('Y-m-d H:i:s').'|'.$_SERVER['REQUEST_URI']."\n";
   file_put_contents('/tmp/upload_debug.log',$log,FILE_APPEND);
}

建议通过DZX技术社区提交完整插件代码包进行深度分析,我们的开发团队可提供定制化补丁服务。如需进一步远程诊断,可提供FTP只读账号及隔离数据库访问权限以便精准定位问题根源。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 平安超级上传 6.9.6版本有bug