지금 구현하려는 기능이

 

디바이스에서  jpg 파일을 선택해서 이 아이를 불러와  base64 encoding을 한 후 서버로 웹서비스를 이용해 전송하는 기능입니다.

 

 

File   객체를 이용해서

 

File f = new File(mImageUri.getPath());

 

를 이용해서 불러오는데,  이 내용을 가지고 이제 base64 encoding을 해서 보내는 방식인데

 

이미지(.jpg) 파일을  File 로 불러서 encoding 해도 인코딩이 제대로 되나요?

 

서버에서 받은 파일을 보면 인코딩이 깨져서 사진이 보이지 않는 것 같아 디버그 과정에서  그냥 인코딩만했다가 다시 디코딩을 해 디바이스에 새로운 파일로 저장해서 보는데  역시 인코딩이 깨졌는지 사진이 제대로 보이질 않습니다.

 

제가 유추하기로는 base64 encoding 하는 라이브러리가 잘 못 되었거나

이미지를 읽어오는 과정에 문제가 있는 것 같은데

 

base64 encoding은   아파치 라이브러리를 이용했습니다.

 

 

 

 

 

for (int i = 0; i < imageUri.size(); i++) {
   Log.d("imageURI" , imageUri.get(i).toString());
   File img = new File( getRealImagePath( imageUri.get(i)));
   Log.d("imageURI", getRealImagePath( imageUri.get(i)));
   byte[] imgBytes = null;
  

   String out_content = "";
   byte[] file_content = new byte[1000];

 

  BufferedReader in = null;
   try {

    in = new BufferedReader(new InputStreamReader(
      new FileInputStream(img), "UTF-8"));

 

    int bytesRead = 0;
    String temp_input = new String(file_content, 0, bytesRead);

    while ((temp_input = in.readLine()) != null) {
     out_content += temp_input;
    }
    in.close();

    imgBytes = out_content.getBytes("UTF-8");
   } catch (Exception e) {
    e.printStackTrace();

   }

 

 

 

을 이용해  out_content 에  jpg 파일 내용을 받아와서   imgBytes 에 바이트로 넣은 다음

 

org.kobjects.base64.Base64.encode(imgBytes)   의 결과를  서버로 전송합니다.

이과정에 도대체 어떤 문제가 있는지 잘 모르겠습니다 ㅠㅠ

 

도와주세요 ㅠㅠ