마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

DB에 blob으로 이미지를 올리고 받는 데서 에러가 납니다...

0 추천

ByteArrayOutputStream stream =  new ByteArrayOutputStream();

bit.compress(CompressFormat.JPEG, 100, stream);
byte[] b = stream.toByteArray();
 
위 코드처럼 안드로이드에서 이미지를 바이트로 변환한 후
 
 
 
$ID=$_REQUEST[id];
$myImage=$_REQUEST[myImage];
 
$sql="update users set myImage='$myImage' where ID='$ID'";
$result = mysql_query($sql);
 
php에서 DB를 업데이트 한 후
 
 
$sql2="select * from users where ID='$ID'";
$result2 = mysql_query($sql2);
 
$base = $obj->myImage;
$myImage = base64_encode($base);
 
위 코드로 다시 DB값을 받아와서 base64로 인코딩해서 
xml에 넣어주는 식으로 구현하고 있는데
 
 
지금 앱을 실행해서 사진을 넣어보면
<myImage>W0JANDUyZjM0NTA=</myImage>
와 같이 xml에 값이 들어가 있습니다.
 
 
이 xml에 접속해서
else if ( xmlPullParser.getName().equals("myImage")){
                    String b1 = xmlPullParser.nextText().trim();
                    if ( b1.equals(" ")){
                    }
                    else {
                    byte[] b = Base64.decode(b1, 0);
                        Bitmap bit = BitmapFactory.decodeByteArray(b, 0, b.length);
                        plusmypicture.setImageBitmap(bit);
                    }
                    }
와 같이 파싱한 후 base64로 디코딩하면
 
illegalargumentexception 이 뜨면서
bad base-64라고 나옵니다.
 
 
이게 값이 제대로 들어간 건지도 모르겠고
이렇게 디비에 blob을 넣어도 되는건지도 모르겠습니다ㅠㅠㅠ
 
이미지 문제때문에 몇일째 계속 고생하다 결국에 질문을 올립니다ㅠㅠㅠ
제발 도와주세요ㅠㅠㅠㅠ
 
아메리카노샷추가 (120 포인트) 님이 2014년 12월 20일 질문

1개의 답변

0 추천

이미지가 겨우 <myImage>W0JANDUyZjM0NTA=</myImage> 이정도로 짧을 수가 없죠

blob 를 제대로 만들었는지, base 64 를 제대로 encode 했는지를 먼저 확인하세요

aucd29 (218,390 포인트) 님이 2014년 12월 23일 답변
...