如何使用c#从base64获取扩展名

Ana*_*wad 4 base64 image

我得到base64字符串作为输入将其保存为图像.但我的问题是我不知道用户上传了什么图像格式.所以如果有人知道如何从base64字符串获取图像格式或扩展名,请帮助我.

pie*_*t.t 6

每个文件类型在文件的开头都应该有一个"幻数",可以用来标识类型.

一些示例(有关更多信息,请参阅http://en.wikipedia.org/wiki/List_of_file_signatures):

filetype    magic number(hex)
jpg         FF D8 FF
gif         47 49 46 38
png         89 50 4E 47 0D 0A 1A 0A
bmp         42 4D
tiff(LE)    49 49 2A 00
tiff(BE)    4D 4D 00 2A
Run Code Online (Sandbox Code Playgroud)

最好的办法是解码base64并检查其中一个字节模式的字节数组的开头.

您可能会考虑将字节模式转换为Base64并检查Base64映像的起始字符,但这可能会让您遇到麻烦,因为Base64编码始终使用3字节到4字符编码,因此字节跟随幻数可能会影响编码图像文件中的Base-64表示.

  • 这就是我说解码并使用字节的原因.解码Base64-String的开头显示以下字节(十六进制)`89 50 4e 47 0d 0a 1a 0a 20 20 20 0d`,所以它显然是一个png文件. (2认同)