Я нашел что-то подобное
Код: Выделить всё
public static string GetFileExtension(string base64String)
{
var data = base64String.Substring(0, 5);
switch (data.ToUpper())
{
case "IVBOR":
return "png";
case "/9J/4":
return "jpg";
case "AAAAF":
return "mp4";
case "JVBER":
return "pdf";
case "AAABA":
return "ico";
case "UMFYI":
return "rar";
case "E1XYD":
return "rtf";
case "U1PKC":
return "txt";
case "MQOWM":
case "77U/M":
return "srt";
default:
return string.Empty;
}
}
Я также попробовал преобразовать массив base64 в массив byte[] и взял подпись заголовка файла, как это делается для файлов jpg
Например
Код: Выделить всё
var file = Convert.FromBase64String(base64String)
private static readonly byte[] JPG = { 255, 216, 255 };
if (file.Take(3).SequenceEqual(JPG))
{
mime = "image/jpeg";
}
Обратите внимание: у меня есть только base64, нет расширения файла или другой информации, и я не могу использовать сторонние библиотеки.
Подробнее здесь: https://stackoverflow.com/questions/791 ... e64-string