【问题标题】:Converting binary data to .doc file with the images inside it将二进制数据转换为 .doc 文件,其中包含图像
【发布时间】:2015-04-27 16:06:13
【问题描述】:

我在数据库中存储了二进制数据,我需要将它们转换回来以进行备份。其中大多数是 .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);

【问题讨论】:

  • 在以下c# convert binary data to image 上进行谷歌搜索,您尝试过吗..?还显示您尝试将二进制数据转换回图像的代码..
  • 您需要展示用于将二进制数据写入文件的代码。
  • 我已尝试将其转换为 jpeg 和 txt:转换为 txt 可以部分工作,因为它无法将其转换为 jpeg...并且转换为 jpeg 不起作用,因为它包含文本的二进制数据还有
  • 您的数据在数据库中是如何编码的?如果是简单的 BLOB,不要将其转换为字符串,只需将其保存为原始字节即可。
  • 只需备份您的数据库。你的提议是不支持的。

标签: c# sql .net type-conversion binary-data


【解决方案1】:

.doc 文件不是字符串,甚至是文本或 ASCII。它是一种原始二进制文件格式。 因此,如果您的数据库单元包含 BLOB(二进制大对象),只需将其视为字节数组并将其写入(二进制)文件。没有转换,没有编码,什么都没有。


编辑

无论是谁设计了这个数据库,他们都将各种文件存储为图像(在内存转储图像的意义上),即图像类型单元格中的一系列原始字节。

你应该像上面提到的那样对待这些字节:一系列原始字节。

【讨论】:

  • 更新了描述:数据存储在图像数据类型中
  • 但是您的数据库单元包含一个 .doc 还是什么?
  • 数据库包含文件路径和名称(现在不存在)以及存储在图像类型中的相应二进制数据,所以从路径中我可以检测到它之前的文件类型......其中一些是 .txt(我能够完美地转换),其中一些是 .doc(这是因为它里面的attahcmens 的问题)
  • 请将此信息添加到您的问题中,赋予所有内容完全不同的含义。
  • 已经在描述部分了……但我觉得不够清楚,我会尝试解释一下。
猜你喜欢
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
相关资源
最近更新 更多