将 base64 字符串转换回 byte[]
本文关键字:byte 转换 base64 字符串 | 更新日期: 2023-09-27 18:32:40
我想使用 C# 使用 Convert.ToBase64String()
将byteArray
转换为base64string
,然后我想通过向 PHP 页面发送此字符串以使用 MySQL 保存。我的问题是我无法使用此方法将此字符串转换回byteArray
,因为在从 PHP 页面检索此字符串后(从 MySQL 获取数据后),它告诉我关于方法 Convert.FromBase64String()
的参数是错误的。
我不知道问题在哪里发生,我该如何解决?
我的代码:
public static string BitmapToString(BitmapImage img)
{
try
{
WriteableBitmap bmp = new WriteableBitmap(img);
byte[] byteArray = null;
string str = null;
MemoryStream stream = new MemoryStream();
bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 100);
byteArray = stream.ToArray();
str = Convert.ToBase64String(byteArray);
return str;
}
catch (System.Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
return null;
}
public static BitmapImage StringToBitmap(string str)
{
try
{
byte[] byteArray = Convert.FromBase64String(str);
Stream memStream = new MemoryStream(byteArray);
BitmapImage img = null;
MemoryStream stream = new MemoryStream(byteArray);
stream.Seek(0, SeekOrigin.Begin);
img = new BitmapImage();
img.SetSource(stream);
return img;
}
catch (System.Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
return null;
}
Convert.FromBase64String()
将适用于Convert.ToBase64String()
结果,但您的应用程序中可能存在未转换为Base64String
的输入,这些情况可能会失败。
这两种方法都不是问题。检查结果Convert.ToBase64String()
以及从数据库中读取结果时得到的结果。