瞎扯淡 最近想到一个关于上传图片的问题。

rasefon · 2012年08月12日 · 最后由 Macrow 回复于 2012年08月12日 · 2813 次阅读

我发现当发一个带图片的帖子的时候,或者说带上传文件的帖子的时候。 如果你已经把附件上传到服务器了,但是最后并没有发表帖子,会导致这些附件成为类似于内存泄露一样的野指针。没有任何对象会引用它们,不能被编辑,也不能删除,一直存在与服务器上面。

目前发现很多论坛都有这类问题。不知道有没有好的解决方法?

做了下实验,ruby-china 也有这类问题,例如: //l.ruby-china.com/photo/aa99bf22c87964fea9821d778908b0e9.jpg //l.ruby-china.com/photo/dd0c454687532557188f0a0b970c9a9e.png

你这样想,图是图,贴是贴,二者木关系不就 o 了。

可以把上传的图片保存在一个临时目录,表单正式提交后再把图片从临时目录移到正式目录啊。后台再加一个 job,定期清理临时目录下的图片。

carrierwave 是保存到临时目录里的

这和内存泄露产生的副作用完全不同。@huobazi +1

能有多少浪费啊,也就一点点而已,无需太在意

可以只允许注册用户上传,每上传一次,就把信息记录到该用户名下, 每名用户可以限制上传文件的数量和大小。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号