将二进制数据转换为包含图像的 .doc 文件
Converting binary data to .doc file with the images inside it
我在数据库中存储了二进制数据,我需要将它们转换回来以供备份。其中大部分是 .doc 文件,文档中附有图像。我恢复它们的方法是将二进制数据写入字节串并将这些字节写入文件,如mydoc.doc。问题是,它适用于 txt 文件,它实际上也适用于 .doc 文件的文本部分。由于大多数 .doc 文件都包含附加的 jpeg,转换后我得到一些可读的文本和随机字符,我相信它们是用于 doc 文件中附加的图片。任何帮助表示赞赏。提前致谢...
注意:二进制数据在数据库中以图像数据类型存储。数据库包含文件路径和名称(现在不存在)以及存储在图像类型中的相应二进制数据,因此从路径我可以检测到它之前的文件类型......其中一些是.txt(我能够完美转换),其中一些是 .doc(这是问题,因为里面有 attahcmens)
这是我的代码:
string s = "D0CF11E0A1B11AE100000000000000000000"; // note: string is for example
var bytes = GetBytesFromByteString(s).ToArray();
File.WriteAllBytes("C:\temp\test.doc", bytes);
.doc 文件不是字符串,甚至不是文本或 ASCII。它是一种原始二进制文件格式。
因此,如果您的数据库单元格包含一个 BLOB(二进制大对象),只需将其视为一个字节数组并将其写出到一个(二进制)文件中。没有转换,没有编码,什么都没有。
编辑
无论谁设计了这个数据库,他们都将各种文件存储为 图像(在内存转储图像的意义上),即一系列原始字节图像类型的单元格。
您应该完全按照上述方式处理这些字节:一系列原始字节。
我在数据库中存储了二进制数据,我需要将它们转换回来以供备份。其中大部分是 .doc 文件,文档中附有图像。我恢复它们的方法是将二进制数据写入字节串并将这些字节写入文件,如mydoc.doc。问题是,它适用于 txt 文件,它实际上也适用于 .doc 文件的文本部分。由于大多数 .doc 文件都包含附加的 jpeg,转换后我得到一些可读的文本和随机字符,我相信它们是用于 doc 文件中附加的图片。任何帮助表示赞赏。提前致谢...
注意:二进制数据在数据库中以图像数据类型存储。数据库包含文件路径和名称(现在不存在)以及存储在图像类型中的相应二进制数据,因此从路径我可以检测到它之前的文件类型......其中一些是.txt(我能够完美转换),其中一些是 .doc(这是问题,因为里面有 attahcmens)
这是我的代码:
string s = "D0CF11E0A1B11AE100000000000000000000"; // note: string is for example
var bytes = GetBytesFromByteString(s).ToArray();
File.WriteAllBytes("C:\temp\test.doc", bytes);
.doc 文件不是字符串,甚至不是文本或 ASCII。它是一种原始二进制文件格式。 因此,如果您的数据库单元格包含一个 BLOB(二进制大对象),只需将其视为一个字节数组并将其写出到一个(二进制)文件中。没有转换,没有编码,什么都没有。
编辑
无论谁设计了这个数据库,他们都将各种文件存储为 图像(在内存转储图像的意义上),即一系列原始字节图像类型的单元格。
您应该完全按照上述方式处理这些字节:一系列原始字节。