请教高手"删除无用的上传图片"应该是个什么逻辑!
我看到有些论坛的后台有个功能叫"删除无用上传",
因为论坛的源代码让人看起来头疼,所以我想在这里和大家探讨一下这个功能是如何实现的,
先说说问题:
就是说很多论坛在发贴子的时候,在编辑得到界面排版的时候可能上传了10张图片,
然后可能觉得某些图片不好,随后又删除了5张,
然后把帖子发了出去,
因为这被"删除"的5张图片也已经呗上传到了服务器端,只是没有排版进来,所以这就属于"垃圾"了~
论坛那个""删除无用上传"就是针对这个来的,那么他是怎么实现的呢?
要我说~应该是最后敲定"发贴",或者是"修改"按钮的时候,后台应该正则一下下文章内容,把属于这篇文章的上传图片地址记录
到数据库,然后把刚上传的图片中,除了这级张,都删除,
但是实际上,这些垃圾图片并没有在发帖完成时被删除,而是在管理员觉得垃圾过多时,统一删除,
所以触发事件不是"发贴"这个动作~
那这些"有用"和"无用"图片是如何在数据库中区分记录的呢?
数据库里弄两个字段,一个记录"有用上传",另一个记录"无用上传",
再或者是什么都不记录,要执行批量清理垃圾的时候,把所有的贴子读一遍,把用到的上传记录下来,再去对照上传目录,把多余
的都删除,可是一般上传文件都是按日期分文件夹保存的,似乎不用到数据库是不可能!
大家分析一下~
------解决方案--------------------
一个字段就可以了 表示是否是有用上传
------解决方案--------------------楼上一语道破。
------解决方案--------------------
遍历图片目录下所有的文件名,然后逐一在数据库中查找比如 select * from imageTable where imagefileName='sadfasd.jgp'
如不存在,则删除。