Okhttp를 써서 Bitmap을 웹서버에 upload 어떻게하나요?

조회수 3225회

php를 이용하여 사진을 업로드할려고하는데요

사진은 카메라나 갤러리에서 선택한것을 가지고 bitmap으로 사이즈 조정후에 서버에다가 올릴려고

합니다. Tip좀 주세요 ㅠ

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

1 답변

  • 이미지 파일을 입력으로 받아 서버로 전송하는 코드의 기본적인 모습은 아래와 같을 것 같고요. 몇몇 부분은 환경에 맞게 수정해야 하니 코드를 참고하셔서 구현해보세요.

    public static String uploadPhoto(File file) {
        try {
            RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("photo", "photo.png", RequestBody.create(MediaType.parse("image/png"), file))
                .build();
    
            String url = "http://...";
            okhttp3.Request request = new okhttp3.Request.Builder()
                .url(url)
                .post(requestBody)
                .build();
    
            OkHttpClient client = new OkHttpClient();
            okhttp3.Response response = client.newCall(request).execute();
            return response.body().string();
        } catch (UnknownHostException | UnsupportedEncodingException e) {
            ...
        } catch (Exception e) {
            ...
        }
        return null;
    }
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • RequestBody.create(MediaType.parse("image/png"), file) 여기에서 여기 부분에서 오류가 발생합니다. file 부분 에 피라미터값이 다른것 같습니다 어떻게 수정해야하나요 이주형 2017.5.17 16:12

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

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

(ಠ_ಠ)
(ಠ‿ಠ)