任意上传图片的存储的设计思路

之前我讲了任意上传图片同时又不会将大量的毫无用处的图片保存在服务器上,占用大量的硬盘的资源的想法。
今天我们来实现一下,注意,我这里假设全部的文章正式标识是int类型
新文章
当用户新建文章并且上传图片时,基于页面ViewState生成一个临时的key,用于标识尚未分配标识的文章。一旦用户决定保存草稿或者发表,则系统将根据临时Key将用户上传的图片与该文章建立后的标识对应。
编辑文章
系统首先获取文章,并基于页面ViewState同样生成一个临时的Key,不过这次首先系统会到数据库中标识相应的图片,对,会更新一次数据库中的图片表的对应临时Key。这样,以往添加的图片同样被作为处理对象。当用户编辑完毕文章时,则系统根据临时key将用户上传的图片与该文章建立后的标识对应,为了避免以前建立的图片不再使用而占据硬盘空间,原来添加的图片的建立时间和查看次数也同样清零。

那么什么时候系统会删除无用的图片文件呢?
我打算这样做,首先,每个图片都会有创建时间,其次,每个图片都会有基于创建时间开始的使用次数,这样,当一张图片文件超过1个月甚至未被访问过一次时,则系统自动删除图片。这里面可能也会有个问题,即草稿模式的文章真的很可能未被访问过一次,所以我考虑的是采用下面的方法:
1,系统全面访问一遍文章,访问的模式可以改为内部服务器访问,这样,可以节省网络资源。因为所有的文章都会被访问一遍,所以每篇文章所含有的图片都会被标记。
2,检查所有的图片,未访问过一次的则删除。
过一段时间我会把实例放上来,鄙人技术水平有限,厄...所以欢迎大家提意见。

你可能感兴趣的:(上传)