我正在尝试恢复存储在 Firebird 数据库中的 BLOB 字段,我拥有的唯一信息是 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);
}
}
既然我知道是 Base64 编码的,如何调整我的代码以从 Base64 解码 BLOB 文件?