日期:2014-05-16  浏览次数:20817 次

请教高手"删除无用的上传图片"应该是个什么逻辑!
我看到有些论坛的后台有个功能叫"删除无用上传",

因为论坛的源代码让人看起来头疼,所以我想在这里和大家探讨一下这个功能是如何实现的,

先说说问题:

就是说很多论坛在发贴子的时候,在编辑得到界面排版的时候可能上传了10张图片,

然后可能觉得某些图片不好,随后又删除了5张,

然后把帖子发了出去,

因为这被"删除"的5张图片也已经呗上传到了服务器端,只是没有排版进来,所以这就属于"垃圾"了~

论坛那个""删除无用上传"就是针对这个来的,那么他是怎么实现的呢? 

要我说~应该是最后敲定"发贴",或者是"修改"按钮的时候,后台应该正则一下下文章内容,把属于这篇文章的上传图片地址记录

到数据库,然后把刚上传的图片中,除了这级张,都删除,

但是实际上,这些垃圾图片并没有在发帖完成时被删除,而是在管理员觉得垃圾过多时,统一删除,

所以触发事件不是"发贴"这个动作~

那这些"有用"和"无用"图片是如何在数据库中区分记录的呢?

数据库里弄两个字段,一个记录"有用上传",另一个记录"无用上传",

再或者是什么都不记录,要执行批量清理垃圾的时候,把所有的贴子读一遍,把用到的上传记录下来,再去对照上传目录,把多余
的都删除,可是一般上传文件都是按日期分文件夹保存的,似乎不用到数据库是不可能!

大家分析一下~

------解决方案--------------------
一个字段就可以了 表示是否是有用上传
------解决方案--------------------
楼上一语道破。
------解决方案--------------------
遍历图片目录下所有的文件名,然后逐一在数据库中查找比如 select * from imageTable where imagefileName='sadfasd.jgp'

如不存在,则删除。