Bitmap 파일을 mysql에 어떻게 Insert 하나요?

조회수 5056회

모바일 커뮤니티 어플리케이션을 만들고 있습니다.

현재 Facebook으로 로그인을 하여 Bitmap 형식으로 프로필 사진을 받아온 상태 입니다.

회원의 정보를 mysql에 저장하고 싶은데, Bitmap 형식을 String으로 변환하여 저장하려고

하니 스트링 길이값이 3900이 넘었습니다.

php를 통해서 전달하려고 하였으나 전달이 되지 않았습니다.

어떻게 해야 Bitmap 파일 형식을 mysql에 저장할 수 있을까요?

아래는 php 와 안드로이드에서 upload하는 httpConnect 코드 부분입니다.

             ....
        $profilePic=$_GET['userImageString'];
        $con=mysqli_connect("####","####","####","####") or die("접속불가");
            #require_once('dbConnect.php');         
        $sql = "INSERT INTO songDB(username,userID,songName,contents,filepath,profilePic) 
                VALUES('$username','$userID','$songName','$contents','$filepath','$profilePic')";
    if(mysqli_query($con,$sql)){
        echo 'successfully Upload';
    }else{
        echo 'oops! Please try again!';
    }      

    private void uploadSongDB() {    
         ...
        Bitmap userImage=MainActivity.UserIDClass.getUserImage();
        String userImageString=BitMapToString(userImage);

        String urlSuffix = "?username="+userName+"&userID="+userID+"&songName="+songName+"&contents="
                      +contents+"&filepath="+filepath+"&userImageString"+userImageString;

        class RegisterUser extends AsyncTask<String, Void, String>{

            ProgressDialog loading;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(RecordActivity.this, "Please Wait",null, true, true);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                if(s.equals("successfully Upload")) {
                    Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
                    Intent intent = new Intent(RecordActivity.this, UploadActivity.class);        
                    intent.putExtra("path", MainActivity.UserIDClass.getUploadFilepath());
                    startActivity(intent);
                    finish();

                }
                else{
                    Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();

                }
            }

            @Override
            protected String doInBackground(String... params) {
                String s = params[0];
                BufferedReader bufferedReader = null;
                try {
                    URL url = new URL(UPLOAD_URL+s);
                    HttpURLConnection con = (HttpURLConnection) url.openConnection();
                    bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));

                    String result;

                    result = bufferedReader.readLine();

                    return result;
                }catch(Exception e){
                    return null;
                }
            }
        }

        RegisterUser ru = new RegisterUser();
        ru.execute(urlSuffix);
    }


  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)