将 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;
}

将 base64 字符串转换回 byte[]

Convert.FromBase64String()将适用于Convert.ToBase64String()结果,但您的应用程序中可能存在未转换为Base64String的输入,这些情况可能会失败。

这两种方法都不是问题。检查结果Convert.ToBase64String()以及从数据库中读取结果时得到的结果。