插入数据库记录与磁盘文件关联思想
2010-08-22 21:45
239 查看
之前我讲了任意上传图片同时又不会将大量的毫无用处的图片保存在服务器上,占用大量的硬盘的资源的想法。
今天我们来实现一下,注意,我这里假设全部的文章正式标识是int类型
新文章
当用户新建文章并且上传图片时,基于页面ViewState生成一个临时的key,用于标识尚未分配标识的文章。一旦用户决定保存草稿或者发表,则系统将根据临时Key将用户上传的图片与该文章建立后的标识对应。
编辑文章
系统首先获取文章,并基于页面ViewState同样生成一个临时的Key,不过这次首先系统会到数据库中标识相应的图片,对,会更新一次数据库中的图片表的对应临时Key。这样,以往添加的图片同样被作为处理对象。当用户编辑完毕文章时,则系统根据临时key将用户上传的图片与该文章建立后的标识对应,为了避免以前建立的图片不再使用而占据硬盘空间,原来添加的图片的建立时间和查看次数也同样清零。
那么什么时候系统会删除无用的图片文件呢?
我打算这样做,首先,每个图片都会有创建时间,其次,每个图片都会有基于创建时间开始的使用次数,这样,当一张图片文件超过1个月甚至未被访问过一次时,则系统自动删除图片。这里面可能也会有个问题,即草稿模式的文章真的很可能未被访问过一次,所以我考虑的是采用下面的方法:
1,系统全面访问一遍文章,访问的模式可以改为内部服务器访问,这样,可以节省网络资源。因为所有的文章都会被访问一遍,所以每篇文章所含有的图片都会被标记。
2,检查所有的图片,未访问过一次的则删除。
过一段时间我会把实例放上来,鄙人技术水平有限,厄...所以欢迎大家提意见。
今天我们来实现一下,注意,我这里假设全部的文章正式标识是int类型
新文章
当用户新建文章并且上传图片时,基于页面ViewState生成一个临时的key,用于标识尚未分配标识的文章。一旦用户决定保存草稿或者发表,则系统将根据临时Key将用户上传的图片与该文章建立后的标识对应。
编辑文章
系统首先获取文章,并基于页面ViewState同样生成一个临时的Key,不过这次首先系统会到数据库中标识相应的图片,对,会更新一次数据库中的图片表的对应临时Key。这样,以往添加的图片同样被作为处理对象。当用户编辑完毕文章时,则系统根据临时key将用户上传的图片与该文章建立后的标识对应,为了避免以前建立的图片不再使用而占据硬盘空间,原来添加的图片的建立时间和查看次数也同样清零。
那么什么时候系统会删除无用的图片文件呢?
我打算这样做,首先,每个图片都会有创建时间,其次,每个图片都会有基于创建时间开始的使用次数,这样,当一张图片文件超过1个月甚至未被访问过一次时,则系统自动删除图片。这里面可能也会有个问题,即草稿模式的文章真的很可能未被访问过一次,所以我考虑的是采用下面的方法:
1,系统全面访问一遍文章,访问的模式可以改为内部服务器访问,这样,可以节省网络资源。因为所有的文章都会被访问一遍,所以每篇文章所含有的图片都会被标记。
2,检查所有的图片,未访问过一次的则删除。
过一段时间我会把实例放上来,鄙人技术水平有限,厄...所以欢迎大家提意见。
相关文章推荐
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- 使用FileUpload上传文件并向数据库插入一条记录
- 数据库原理之三(存储数据:磁盘和文件)
- [填坑记录][数据库]向MySQL插入单引号
- 使用Hibernate插入数据后数据库没有记录的解决方法
- 如何向数据库中插入包含单引号的记录
- 利用存储过程读指定文件夹里所有txt文件,将数据插入数据库中
- 数据库用裸设备做数据文件的一点记录
- Java知多少(110)数据库之插入记录
- 数据库从文件系统转移至ASM实验记录
- Django 使用 MySQL 存储时间中遇到的问题(在数据库中记录插入时间、更新时间、删除时间)
- SQL将本地图片文件插入到数据库
- MS Sql Server查询磁盘的可用空间,数据库数据文件及日志文件的大小及利用率
- 如何让 GoldenGate 在 trail 文件中记录数据库的 SCN 信息
- Javaweb记录日志到数据库和文件中
- 得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间
- 记录处理磁盘镜像文件的单个分区
- VC向数据库中插入一条记录
- Android 根据sql文件创建数据库并插入数据