0

我想使用 C#通过 using将 a 转换byteArray为,然后我想通过将发布数据发送到 PHP 页面来发送此字符串以使用 MySQL 保存。我的问题是我无法使用此方法将这个字符串转换回一个,因为在从 PHP 页面检索到这个字符串之后(在它从 MySQL 获取数据之后),它告诉我方法上的参数是错误的。base64stringConvert.ToBase64String()byteArrayConvert.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;
}
4

1 回答 1

1

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

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

于 2012-04-30T18:17:47.280 回答