如何使用C#在Oracle的Blob字段中保存和检索图像?用数据库存储图片是不是一个好的选择?
发布于 2011-07-20 00:29:28
既然您使用的是C#,那么您可能想要从微软的Working with Oracle LOBs开始。其中有许多使用OracleLob类读取和写入LOB到Oracle数据库的示例。
至于使用数据库存储图像是否是一个好主意,这取决于所有的事情。将图像存储在数据库中可确保图像受到事务完整性的保护。它提供了一个可以驻留所有映像的单一位置,根据定义,所有中间层服务器都可以访问该位置。这样可以更轻松地确保所有数据都已备份并可以恢复。它确保没有人在不记得更新数据库的情况下意外地移动了图像。
另一方面,这意味着数据库的大小可能会大幅增加,因此更难备份。据推测,这只是用数据库备份大小来换取文件系统备份大小,但这可能涉及将令人头疼的问题从组织中的一个组转移到另一个组。这意味着您不能使用文件系统脚本管理文件系统上的映像。这可能会使在中间层上缓存图像变得更加困难。
发布于 2011-07-20 00:16:44
我不知道您使用的是什么编程语言,但只需打开您的文件并使用十六进制表示法写入字节即可。
下面是一个用Java语言编写的例子:http://www.herongyang.com/JDBC/Oracle-BLOB-SQL-INSERT.html
编辑:您可以保存像素,或压缩之前的图像(在网络摄像头的情况下)。我建议您在将图像保存到数据库之前使用JPEG或PNG之类的格式。
https://stackoverflow.com/questions/6750404
复制相似问题