7
回答
如何删除未使用的附件?求方案,越多越好。

如用户打开浏览器并上传了附件,但是未保存又关闭了浏览器,如何处理这一批附件?删除的话,如何确保是本次上传的附件,不删除用户准备使用的附件(用户可能同时打开了多个编辑器页面,并且都上传了附件)。

求方案!

<无标签>
举报
no_user
发帖于3年前 7回/276阅
共有7个答案 最后回答: 3年前
我以前做一个博客类的网站,文章可以上传附件,我是这么做的:新增文章时,生成一个唯一的KEY,上传附件时保存文件(生成唯一名),在附件表里插一条记录,记原文件名,当前文件名等,还有那个唯一KEY,附件上传后,保存文章时,文章记录也保存这个KEY,这样,文章和它的附件是通过这个KEY来关联的。如果只上传附件,没保存文章,那就没有这个关联,做一个定时任务,比如一小时执行一次,把没有文章与之关联的附件删除就行了。
--- 共有 1 条评论 ---
no_user大家都提到定时任务,看来这是唯一不让用户操心的方案了。 3年前 回复
有业务逻辑上的关联,那就好办,定时扫就行了,文件目录按日期建
--- 共有 1 条评论 ---
no_user用的是PHP。我想了一个方法:每两天删除一次文件。但是会两个问题,一是两天的周期会不会过长,服务器空间不够用,一次性删除的文件过多,服务器崩溃会不会崩溃、二是怎样避免误删用户正准备在使用的文件。 3年前 回复

定时删除。首先得在文章发布后,附件表有上传附件的信息,一段时间定时删除没有在表里的附件。

也可以参考DZ的附件模式,上传没用的附件,在下次写文章或者编辑文章时,把附件提示性的显示出来

--- 共有 2 条评论 ---
欣儿回复 @尾部大湿 : 那就不显示吧。没有文章ID的就直接删除 3年前 回复
no_user这些都有,至于提示性的显示出来,我感觉无形中增加了用户的负担。我喜欢干净利落,用户完成编辑后不用理会被弃用的图片。 3年前 回复
做一个用户所属附件的维护模块,用户可以看到和维护自己上传的所有附件。
--- 共有 1 条评论 ---
no_user这个我有想过,但是有点问题,用户在编辑的时候已经决定了使用那些图片和不使用那些图片,而这个方法需要用户再次管理已经被自己弃用的图片,我感觉不是很好,我希望帖子附件用户只能通过帖子编辑来管理,如果太多管理端口,数据同步比较麻烦。 3年前 回复

可以这样,上传的同时存到一个表中,表中记录路径和上传时间。

然后提交表单的时候,再去删除刚刚插入表中的数据。

然后定时任务就定时清除超过N分钟还存在表中的记录(n分钟自己估算,半个小时差不多了,也避免删除正准备使用的)

顶部