Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保存不同的文件格式_C#_Wcf - Fatal编程技术网

C# 保存不同的文件格式

C# 保存不同的文件格式,c#,wcf,C#,Wcf,在我的应用程序中,我收到base64string格式的不同文件。 在收到这些base64string之后,我的应用程序需要转换它们 转换为原始格式。 这些文件可以是pdf、txt、jpeg图像、bmp图像、gif图像或png图像格式。 如何知道此文件的格式,以便将其转换为 各自的格式。Base64字符串是否有任何方式提供此信息。 任何帮助都将不胜感激。base64数据只包含文件数据本身,没有关于它的元数据(包括文件名/扩展名)。您可能会尝试解析解码后的base64数据的前几个字节,以尝试找出文件

在我的应用程序中,我收到base64string格式的不同文件。 在收到这些base64string之后,我的应用程序需要转换它们 转换为原始格式。 这些文件可以是pdf、txt、jpeg图像、bmp图像、gif图像或png图像格式。 如何知道此文件的格式,以便将其转换为 各自的格式。Base64字符串是否有任何方式提供此信息。
任何帮助都将不胜感激。

base64数据只包含文件数据本身,没有关于它的元数据(包括文件名/扩展名)。您可能会尝试解析解码后的base64数据的前几个字节,以尝试找出文件类型,但更简单的方法是服务将此信息添加到某个HTTP头中(例如
内容处置
).

我认为您只需要将它从
base64string
转换为二进制格式并保存在磁盘上。您只需要获得正确的文件扩展名或完整的文件名,以便用户可以使用关联的程序打开它。

获取文件类型的唯一可靠方法是通过与文件关联的元数据。如果在您的情况下不可用,解决方法是读取文件的前几个字节。许多常见格式要求该格式的文件以字节序列开头,称为“幻数”

这提供了PDF、JPG、PNG和GIF格式的maic编号。BMP文件通常以常量0x42 0x4D(*)开头。由于文本文件仅包含内容,因此需要将其作为默认选项(即,如果前几个字节未被识别为已知的幻数,则假定它是文本文件。)

Base-64编码只是文件的二进制表示。转换回字节序列并评估前几个字节应足以表明文件属于某种类型。请注意,这是一个不完善的解决方案;例如,碰巧以幻数(例如,“BM”)开头的文本文件可能会被错误地归类为另一种类型的文件