我想恢复存储在Firebird数据库中的BLOB字段,我唯一的信息是BLOB字段的内容是文档。如何从Firebird恢复未知类型的BLOB字段
我试过使用IBManager右键单击单元格并单击“将BLOB保存到文件”,但保存的文件是不可读的(就像它被加密了一样)。我试图用Microsoft Word,记事本,Adobe等打开它,但没有成功。我也尝试用WinRAR打开它(我认为它可能在被存储到数据库之前被压缩),但仍然没有。
有没有办法找出BLOB文件是否以及如何压缩以及如何恢复?
在此先感谢!
更新:
我已经转换了Firebird数据库到SQL和我使用下面的代码来提取未编码的BLOB文件:
conn.Open();
dr = comm.ExecuteReader();
while (dr.Read())
{
byte[] document_byte = null;
if (dr[1] != System.DBNull.Value)
{
document_byte = (byte[])dr[1];
}
string subPath = "C:\\Documents\\" + dr[0] + "\\";
System.IO.Directory.CreateDirectory(subPath);
if (document_byte != null)
{
System.IO.File.WriteAllBytes(subPath + "Document", document_byte);
}
}
我如何调整我的代码来解码从BLOB文件Base64,因为我知道是Base64编码?
你可以发布的前几个字节为十六进制(说10 - 20),也许有人认识到文件类型。 – 2013-03-27 16:50:33
@MarkRotteveel 这是文件的第一个字节。 'eJztnQmATuX + X3/VMU + 872xmGPtgkpBlDAaTpcaSpRiUbEm2GTNjDIZU/mHqCimuypbrWrLeSJa6JIUSSt0oqaSuuu1XqIvcwvy/z1nmnPO + 5zzv4sxi7nn4zFmec37P8nv25bxHPog7tWprja/Iy9xKDrpa6CGX6p4dHJcvYok + xcEGrhYWFrJbx8DHoNAy1405vXYfTRjmcRJdqrinSLMwUHz' – user2214824 2013-03-28 08:26:40
这看起来像一个base64编码给我。你有没有试过先解码它? – 2013-03-28 08:32:27