byteArray
をbase64string
に変換するのにC#を使用してConvert.ToBase64String()
を使用したい場合は、この文字列をPHPページに送信することでMySQLを使用して保存します。私の問題は、この文字列をbyteArray
に変換することができないということです。この文字列をPHPページから取得した後(そのデータがMySQLから取得された後)、メソッドConvert.FromBase64String()
の引数が間違っているとわかります。base64stringをbyte []に変換する
どこに問題が発生していないのですが、どのように解決できますか?
マイコード:
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;
}
文字列を取得してバイト配列に変換しようとするコードを投稿できますか? –
phpページから戻ってきた文字列が実際にbase-64でエンコードされた文字列であることを確認しましたか? – zimdanen
データベースに送信した文字列データが戻ってきたときとまったく同じものであることを確認する価値があります。テーブルの列定義に応じて、文字列にスペースを埋め込むことができます(char vs varchar、nchar vs nvarcharなど)。しかし、Base64の変換方法が空白の後ろに気を配っているかどうかはわかりません。 –