- 粘贴图片上传ID paste_image_upload版本 1.0.8插件制作者 233免费127 行 / 7.2 KB配合附件上传插件,在主题或回帖正文中粘贴截图后自动上传并插入 Markdown 图片。app/plugins/paste_image_upload/plugin.php开发日志已有 1 条
个人独立维护项目。
主楼 插件质量报告
插件:
paste_image_uploadHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
未检测到插件数据表声明。
- bbs1org2026-08-11
- bbs1org2026-08-11
- bbs1org2026-08-11
非常好用。推荐大家安装
- bbs1org2026-08-11
已修复并更新到 1.0.2。
根因有两个:
- 创建提示节点时实际写成了
data-paste-image-toast,后续查询却使用data-paste-image-upload-toast,所以每次状态变化都会创建新的提示节点,旧的“正在上传”节点还留在页面; - 初始“正在上传”提示在触发附件上传之后才显示,上传很快时可能反过来覆盖已经出现的完成提示。
1.0.2 现在:
- 所有状态共用唯一的
data-paste-image-upload-toast节点; - 先显示持续的上传状态,再触发附件上传;
- 成功、失败或超时会替换同一个节点并自动隐藏;
- 上传匹配会排除粘贴前已经存在的附件,避免同名历史附件误判;
- 提示和辅助文字的
data-*也全部改成完整插件 ID 前缀。
我用合成的 1×1 PNG 在真实附件上传器里执行粘贴测试:上传状态 success、Markdown 自动插入、临时 marker 数量为 0、页面始终只有 1 个 toast,4 秒后“已粘贴并插入 1 张图片”已自动隐藏。
- 创建提示节点时实际写成了
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
未发现明显问题(纯前端脚本,不涉及数据库与权限操作)。
⚡ 性能问题
- plugin.php:112 对
document.body以subtree:true观察全页所有 DOM 变更并逐个调用addHints,任意节点变化都触发遍历。建议把观察范围限定到编辑器/表单容器,并跳过非 Element 节点。
🐛 功能/规范缺陷
- 提示节点去重失效:第 16 行用
[data-paste-image-upload-toast]查询,第 20 行却写入dataset.pasteImageToast(实际生成data-paste-image-toast),二者不一致,每次提示都新建节点,旧节点不回收、越积越多。建议第 20 行改为dataset.pasteImageUploadToast。 - 第 6 行 CSS
font-size:11px直接写数字,违反字号须用var(--font-size-*),建议改为var(--font-size-xs)。 - 依赖
attachment_upload插件的 DOM 结构(.attachment-uploader、data-attachment-key、data-markdown等,第 32/62-68 行),对方改版即失效。建议加运行时检测并在缺失时给出降级提示。 - 版本为 1.0.8 但开发日志为空,未按规范逐版本填写更新日志。
✅ 修复优先级
- 统一提示节点属性名(修复去重);2. 限定 MutationObserver 观察范围;3. 修正字号变量并补全更新日志;4. 增加对依赖插件的检测与降级。
- plugin.php:112 对
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:粘贴图片上传(paste_image_upload)v1.0.8
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。
旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。
