2012-04-30 2 views
0

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; 
} 
+8

문자열을 검색하고 바이트 배열로 다시 변환하려는 코드를 게시 할 수 있습니까? –

+0

PHP 페이지에서 돌아 오는 문자열이 실제로 base-64로 인코딩 된 문자열인지 확인 했습니까? – zimdanen

+0

당신이 데이터베이스에 보낸 문자열 데이터가 돌아 왔을 때 정확히 동일하다는 것을 확실히 검증할만한 가치가 있습니다. 표의 열 정의에 따라 문자열에 공백을 추가 할 수 있습니다 (예 : char vs varchar 또는 nchar vs nvarchar). Base64 변환 방법이 후행 공백을 신경 쓰는지 모르겠다. –

답변

1

Convert.FromBase64String()Convert.ToBase64String() 결과를 위해 작동하지만 Base64String로 변환되지 귀하의 aplication의 입력이있을 수 있으며, 이러한 경우 실패 할 수 있습니다.

두 가지 방법으로는 문제가되지 않습니다. Convert.ToBase64String() 결과와 데이터베이스에서 읽은 결과를 확인하십시오.

+0

좋아, 일부 특수 문자가 PHP로 보내 졌을 때 변경된 것처럼 보였습니다. 어떻게 PHP를 변경하지 않고 데이터를 보내는 지 알고 있었습니까? –

+0

OK !, UrlEncode 메서드를 사용하여 PHP 페이지로 데이터를 보내기 전에 문제가 해결되었습니다. –

관련 문제