2014-01-10 2 views
2

내 이미지를 바이트 배열로 변환 한 다음 base64 문자열로 변환하고 완벽하게 디코딩하지만 PHP를 사용하여 해당 문자열을 mysql 데이터베이스에 저장하고 데이터베이스에서 검색 할 때 디코드하지 않고 나쁜 base64라고 표시합니다안드로이드에서 Base64 사용

내 코드는 다음과 같습니다.

PHP

$sql = "insert into users(username, password, email,mob,imagetext) 
          values ('".$username."', '".$password."', '".$email."', '".$mob."', '".$imageText."') ";        

로이드

인코딩

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
Bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
byte[] b = baos.toByteArray(); 
String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT); 

디코드

byte[] decodedByte = Base64.decode(value, Base64.DEFAULT);      
b = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); 
+0

나는 그것이 MySQL의 내부에 저장하기 전에 문자열을 래핑 생각합니다. – Punit

+0

PHP 디코드 기능을 제공하지 않습니다 ... – Leonardo

+0

PHP를 사용하여 텍스트로 삽입하면 인코딩 및 디코딩이 안드로이드 코드에 의해 처리됩니다. 맞습니까? 나는 코딩에 새로운 사람이다. – Punit

답변

0

Base64.DEFAULT에서 Base64 인코딩 옵션을 변경보십시오. Base64.URL_SAFE는 PHP 스크립트로 전송할 때 인코딩 될 필요가없는 문자를 사용합니다. Base64.NO_WRAP을 사용하면 MIME 새 행이 기본 64 출력에 추가되지 않습니다. 위의 답변에 따라

0

, 인코딩 :

String imageEncoded = Base64.encodeToString(b,Base64.NO_WRAP | Base64.URL_SAFE); 

디코드 :

byte[] decodedByte = Base64.decode(value, Base64.NO_WRAP | Base64.URL_SAFE);  
관련 문제