XIUNOX用户上传但未发布帖子的图片/视频/附件去哪里了

管理

存储位置

用户上传图片时(route/attach.php:80),文件被保存到 upload/tmp/ 临时目录(缩略图在 upload/tmp/thumb/),文件信息记录到 $_SESSION['tmp_files'],aid 以 _ 开头(如 _0_1)。

三种命运

1. 正常发帖/回帖 — model/attach.func.php:273 attach_assoc_post($pid)

  • 编辑器中存在的图片/视频:从 tmp/ 复制到 upload/attach/Ym/(按年月分目录),写入 bbs_attach

  • 用户从编辑器删除的图片/视频:直接 unlink 删除临时文件

  • 最后清空 $_SESSION['tmp_files']

2. 用户主动删除 — route/attach.php:269

  • 调用 attach-delete-_N 接口,删除临时文件 + 缩略图 + session 记录

3. 没发帖就关掉页面 — ⚠️ 临时文件一直留在 upload/tmp/

  • session 过期后 tmp_files 映射丢失,物理文件成为"孤儿"

  • 后台附件管理(admin/route/attach.php 的 batch_delete)只清理 bbs_attach 表里的孤儿(已入库但帖子被删的),不管 upload/tmp/ 里的未入库文件

自动清理机制

model/attach.func.php:248 attach_gc()

  • 扫描 upload/tmp/*.*upload/tmp/thumb/*.*

  • 删除 mtime 超过 24 小时(86400 秒) 的文件

  • 由 model/cron.func.php:55 每日计划任务触发(每日 0 点后首次有用户访问站点时执行)

总结

未发布的图片最多在 upload/tmp/ 躺 24 小时,次日计划任务会自动清理掉。如果想立即清理,可以手动删除 upload/tmp/ 下的旧文件,或等当天 0 点后第一次访问触发 cron

最新回复

请先登录后再回复 登录

uid:1 管理
关注
随遇而安,随缘而行
发帖 86
评论 354
粉丝 11
关注 1
发新帖
目录
XIUNOX用户上传但未发布帖子的图片/视频/附件去哪里了