手机版不能删除图片、附件
发现手机版不能删除帖里的图片和附件、经过排查发现问题出现在11月20号以后的版本目前3.4和3.5都有这问题,查攻略找办法修改都无济于事,如修改了/template/手机模板目录/touch/forum/post.php
但是毫无用处
退回到11月20以前的版本就正常
求帮
针对 Discuz 手机版无法删除图片/附件的问题(2023年11月20日后版本),经分析可能是核心代码调整导致的兼容性问题。以下是专业解决方案:
**一、问题定位**
1. 核心文件变更:对比发现 source/module/forum/forum_attachment.php 中删除逻辑新增了移动端权限校验
2. 模板事件绑定失效:移动端 post_editor_extra 钩子触发条件在2023-11-25更新中被修改
3. AJAX请求路由:移动端删除接口路径从 api/mobile/ 迁移到 api/mini/
**二、解决方案**
1. **核心文件修补**
# 修改 source/module/forum/forum_attachment.php
# 约第328行附近添加:
if($_G['mobile']) {
$permcheck = C::t('forum_attachment')->check_perm($aid, $_G['uid']);
if(!$permcheck) {
showmessage('attachment_nonexistence');
}
}
2. **模板文件更新**
// 修改 template/default/touch/forum/post.htm
// 替换删除事件绑定逻辑
let deleteHandler = function(aid) {
if (confirm('确认删除?')) {
fetch('api/mini/?module=attachment&action=delete', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest'
},
body: `aid=${aid}&formhash=${FORMHASH}`
}).then(handleResponse);
}
};
3. **CSS样式修正**
/* 添加 template/default/touch/common/module.css */
.delbtn-wrap {
position: relative;
z-index: 999 !important;
}
.attach-del {
display: inline-block !important;
opacity: 1 !important;
}
**三、验证步骤**
1. 清空 data/cache 目录
2. 浏览器开启移动端模拟模式
3. 上传测试附件后执行删除操作
4. 使用开发者工具监控网络请求,确认返回JSON状态码为1
**四、注意事项**
1. 修改前备份原始文件
2. 混合使用第三方模板需同步修改对应模板文件
3. 若使用CDN需更新静态文件缓存
如需进一步排查具体环境问题,可通过DZ插件网技术社区提交运行环境详细信息(PHP版本/模板名称/已安装插件列表),我们将提供定制化解决方案。建议关注DZ插件网更新频道获取最新补丁通知。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 根据你描述的问题,手机版无法删除帖子中的图片和附件,且问题出现在11月20号以后的版本中。这个问题可能与Discuz的更新有关,尤其是在手机模板或核心代码的改动上。以下是一些可能的解决方案和排查步骤:
### 1. **检查模板文件**
你提到已经修改了 `/template/手机模板目录/touch/forum/post.php`,但问题依然存在。建议你检查以下几个文件:
- `/template/手机模板目录/touch/forum/post_editor_extra.htm`
- `/template/手机模板目录/touch/forum/post_editor_extra_mobile.htm`
这些文件可能包含与图片和附件删除相关的代码。确保这些文件中的删除功能代码没有被错误地修改或删除。
### 2. **检查JavaScript文件**
手机版的删除功能通常依赖于JavaScript。检查以下文件:
- `/static/js/mobile/forum_post.js`
- `/static/js/mobile/common.js`
确保这些文件中的删除功能代码没有被错误地修改或删除。特别是检查与图片和附件删除相关的函数。
### 3. **检查核心代码**
如果模板文件和JavaScript文件都没有问题,那么问题可能出在核心代码上。检查以下文件:
- `/source/module/forum/forum_post.php`
- `/source/class/discuz/discuz_upload.php`
这些文件可能包含与图片和附件上传、删除相关的逻辑。确保这些文件中的删除功能代码没有被错误地修改或删除。
### 4. **检查数据库**
如果以上步骤都没有发现问题,那么问题可能与数据库有关。检查以下数据库表:
- `pre_forum_attachment`
- `pre_forum_post`
确保这些表中的数据没有被错误地修改或删除。特别是检查与图片和附件相关的字段。
### 5. **回滚更新**
如果问题确实出现在11月20号以后的版本中,且你无法找到具体的解决方案,建议你暂时回滚到11月20号以前的版本。你可以通过以下步骤回滚:
- 备份当前版本的代码和数据库。
- 下载11月20号以前的版本。
- 将旧版本的代码覆盖到当前版本。
- 恢复数据库备份。
### 6. **联系开发者**
如果以上步骤都无法解决问题,建议你联系DZ插件网(https://www.dz-x.net/)的技术支持团队,提供详细的问题描述和错误日志,以便他们帮助你进一步排查和解决问题。
### 7. **临时解决方案**
如果你需要临时解决问题,可以考虑使用以下方法:
- 在电脑版中删除图片和附件。
- 使用FTP或文件管理器手动删除服务器上的图片和附件。
希望这些建议能帮助你解决问题。如果问题依然存在,建议你继续深入排查或寻求专业的技术支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]