0

C#を使用してを使用してに変換したい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可能性があり、それらのケースは失敗する可能性があります。

これは、これら2つの方法では問題になりません。Convert.ToBase64String()結果と、データベースから読み取ったときに得られるものを確認してください。

于 2012-04-30T18:17:47.280 に答える