关于腾讯云OSS图片删除后无法重新生成封面的问题,请按以下步骤排查处理:
一、核心问题排查:
1. 数据库残留记录检查
通过phpMyAdmin执行SQL查询(替换为实际tid):
- SELECT * FROM pre_forum_threadimage WHERE tid=帖子ID;
复制代码
若存在已删除图片记录,执行:
- DELETE FROM pre_forum_threadimage WHERE tid=帖子ID AND attachment='已删除文件名';
复制代码
2. 封面缓存刷新机制
在SSH执行(需开启计划任务):
- php /网站路径/forum.php?mod=cron&action=daily
复制代码
二、强制生成解决方案:
1. 通过数据库直接写入(示例):
- UPDATE pre_forum_thread SET cover=1 WHERE tid=帖子ID;
- INSERT INTO pre_forum_threadimage (tid, attachment, remote)
- VALUES (帖子ID, 'newimage.jpg', 1);
复制代码
2. OSS插件调试模式开启:
修改插件核心文件(路径举例):
/plugin/osscloud/oss.class.php
添加:
- define('DEBUG_LOG', true);
复制代码
三、深度处理方案:
1. 文件索引重建(慎用):
- require_once './source/class/class_attach.php';
- $attach = new Attach();
- $attach->recovery_attach(帖子ID);
复制代码
2. GD库强制生成(需服务器支持):
在include/thread/thread_image.php 第238行后插入:
- if(!is_file($targetfile)){
- $image->Thumb($sourcefile, $targetfile, $thumbwidth, $thumbheight);
- }
复制代码
四、预防性措施:
1. 在OSS插件中追加删除同步代码:
- // 在删除操作后添加
- C::t('forum_threadimage')->delete_by_tid_attachment($tid, $attachname);
复制代码
操作前请务必备份数据库及文件。若需具体文件定位,请提供FTP中以下文件路径:
- 插件目录结构
- data/attachment目录权限
- config/config_global.php中的存储设置
注:相关技术方案可参考DZ插件网(www.dz-x.net)的《Discuz!云存储深度整合指南》,该文档详细讲解了云存储与本地记录的同步机制。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |