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

비트맵이미지 서버로 전송하는방법

0 추천
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
String data = Base64.encodeToString(byteArray, Base64.DEFAULT);
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("image", data));
 
이런식으로 해서 보내는게 맞나요 ??
 
String data = Base64.encodeToString(byteArray, Base64.DEFAULT);
이부분 이해가안가는데 알려주실수 있을까요 ?
 
서버측에서 받을때는 어떻게받아야하는지 알려주시면 감사하겠습니다.
음무 (17,820 포인트) 님이 2014년 1월 17일 질문

1개의 답변

+1 추천
 
채택된 답변

용량이 큰 데이터를  보낼 때 일반적으론  multipart/form-data 형식으로 보냅니다만.. 

https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved=0CEIQFjAC&url=http%3A%2F%2Fjavacan.tistory.com%2F60&ei=g7_YUuCNGYPDkwXg34HoAg&usg=AFQjCNE3y24qYa8PlHY0nCVxblkjBMpyhw&bvm=bv.59568121,d.dGI

 

적어주신 코드의 경우 Header에 이미지 정보를 포함시켜 보내는 방식이네요.

Header 에 이미지 정보를 넣으려 하는데 헤더에 들어가는 데이터는 문자열 형식이어야 하나 이미지 데이터는 문자열이 아니라 바이너리 형식이라. 문자열 형식으로 만들어주기 위해 Base64를 사용하는 것입니다.

구현하시는 코드대로 하면  image : "base64 encoding 된 이미지 정보" 같은 형식으로 헤더가 추가되어 서버로 전송이되고,

서버에서는 헤더의 name 중 image에 해당하는  value 값 즉 "base64 encoding된 이미지 정보"  를 base64 decoding하는 방식으로 이미지 데이터를 구하면 됩니다.

 

 

사악미소 (65,330 포인트) 님이 2014년 1월 17일 답변
사악미소님이 2014년 1월 17일 수정
감사합니다. 죄송하지만 작업하다가 막히는부분 있으면 댓글로 여쭤봐도 될까요
...