C# 保存不同的文件格式
在我的应用程序中,我收到base64string格式的不同文件。 在收到这些base64string之后,我的应用程序需要转换它们 转换为原始格式。 这些文件可以是pdf、txt、jpeg图像、bmp图像、gif图像或png图像格式。 如何知道此文件的格式,以便将其转换为 各自的格式。Base64字符串是否有任何方式提供此信息。C# 保存不同的文件格式,c#,wcf,C#,Wcf,在我的应用程序中,我收到base64string格式的不同文件。 在收到这些base64string之后,我的应用程序需要转换它们 转换为原始格式。 这些文件可以是pdf、txt、jpeg图像、bmp图像、gif图像或png图像格式。 如何知道此文件的格式,以便将其转换为 各自的格式。Base64字符串是否有任何方式提供此信息。 任何帮助都将不胜感激。base64数据只包含文件数据本身,没有关于它的元数据(包括文件名/扩展名)。您可能会尝试解析解码后的base64数据的前几个字节,以尝试找出文件
任何帮助都将不胜感激。base64数据只包含文件数据本身,没有关于它的元数据(包括文件名/扩展名)。您可能会尝试解析解码后的base64数据的前几个字节,以尝试找出文件类型,但更简单的方法是服务将此信息添加到某个HTTP头中(例如
内容处置
).我认为您只需要将它从base64string
转换为二进制格式并保存在磁盘上。您只需要获得正确的文件扩展名或完整的文件名,以便用户可以使用关联的程序打开它。获取文件类型的唯一可靠方法是通过与文件关联的元数据。如果在您的情况下不可用,解决方法是读取文件的前几个字节。许多常见格式要求该格式的文件以字节序列开头,称为“幻数”
这提供了PDF、JPG、PNG和GIF格式的maic编号。BMP文件通常以常量0x42 0x4D(*)开头。由于文本文件仅包含内容,因此需要将其作为默认选项(即,如果前几个字节未被识别为已知的幻数,则假定它是文本文件。)
Base-64编码只是文件的二进制表示。转换回字节序列并评估前几个字节应足以表明文件属于某种类型。请注意,这是一个不完善的解决方案;例如,碰巧以幻数(例如,“BM”)开头的文本文件可能会被错误地归类为另一种类型的文件