保存不同的文件格式
本文关键字:文件 格式 保存 | 更新日期: 2023-09-27 18:05:26
在我的应用程序中,我收到不同的base64string文件。在收到这些base64Strings后,我的应用程序需要转换它们转换成原始格式。这些文件可以是pdf,txt,jpeg图像,bmp图像,gif图像或png图像格式。我如何知道这个文件的格式是什么,以便将它们转换为它们的格式各自的格式。是否有任何方法base64string给出这个信息。
base64数据只包含文件数据本身,不包含有关它的元数据(包括文件名/扩展名)。您可能会尝试解析解码的base64数据的前几个字节,以找出文件类型,但更简单的方法是让服务将此信息添加到某些HTTP头(例如Content-Disposition
)中。
我认为你只需要将其从base64string
转换为二进制格式并保存在磁盘上。您只需要获得正确的文件扩展名或完整的文件名,以便用户可以使用相关程序打开它
获取文件类型的唯一可靠方法是通过与文件关联的元数据。如果在您的情况下这是不可用的,一个解决方法是读取文件的前几个字节。许多常见格式要求该格式的文件以字节序列开头,称为"幻数"。
这篇维基百科文章提供了PDF、JPG、PNG和GIF格式的主码。BMP文件通常以常量0x42 0x4D(*)开头。因为文本文件只包含内容,所以它需要是一个默认选项(即,如果前几个字节没有被识别为已知的幻数,则假定它是一个文本文件。)
Base-64编码只是文件的二进制表示。转换回字节序列并评估前几个字节应该足以表明文件属于某种类型。请注意,这是一个不完美的解决方案;例如,一个文本文件碰巧以一个幻数开头(例如,"BM"),可能会被错误地归类为另一种类型的文件。