byteArray
을 으로 변환하고 Convert.ToBase64String()
을 사용하여 C로 #을 바꾼 다음이 문자열을 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 변환 방법이 후행 공백을 신경 쓰는지 모르겠다. –