【发布时间】:2015-11-17 12:45:25
【问题描述】:
我有一个这样的课程场景。
Class Document
{
public string Name {get;set;}
public byte[] Contents {get;set;}
}
现在我正在尝试实现导入导出功能,其中我将文档保存为二进制文件,因此该文档将与其他字段一起保存在 json 文件中,并且该文档将采用这种格式。
UEsDBBQABgAIAAAAIQCitGbRsgEAALEHAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAA==
现在,当我将此文件上传回来时,我将此文件作为字符串获取,并且得到相同的数据,但是当我尝试将其转换为二进制字节 [] 时,文件已损坏。
我怎样才能做到这一点?
我用这样的东西来转换
var ss = sr.ReadToEnd();
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(ss);
writer.Flush();
stream.Position = 0;
var bytes = default(byte[]);
bytes = stream.ToArray();
【问题讨论】:
-
字符串是如何编码的?我遇到过类似的问题,我必须解码字符串以获得正确的字节[]
-
我认为我没有为文件添加任何编码。它简单地从 DB 的二进制列返回
-
您的字符串似乎是 base64 编码的 ZIP 文件。在你做任何事情之前,你需要确切地知道它是什么格式。
-
作为辅助操作,请确保您在必要时处理您的对象。 msdn.microsoft.com/en-us/library/yh598w02.aspx
-
@LucasTrzesniewski - 不,你没有。如果它看起来像 Base64,那么您可以按照其他答案的建议使用
FromBase64String()。
标签: c# binary-data