1

Android 애플리케이션에서 이미지를 PHP 서버에 업로드하려고합니다.안드로이드 - 이미지 업로드시 콘텐츠 유형 설정 오류

저는 httpcore 및 httpmime 라이브러리를 사용하고 있습니다.

문제는 이미지를 업로드하고 있지만 서버가 JPEG 이미지로 인식하지 못하는 것입니다. 이미지의 ContentType을 설정해야하지만이를 수행하는 방법을 찾을 수 없습니다.

public void uploadImage(String imagePath) throws ClientProtocolException, IOException 
    { 
     // Client-side HTTP transport library 
     HttpClient httpClient = new DefaultHttpClient(); 

     // using POST method 
     HttpPost httpPostRequest = new HttpPost("URL_TO_PHP_SERVER"); 
     try { 

      File file = new File(imagePath); 

      MultipartEntityBuilder multiPartEntityBuilder = MultipartEntityBuilder.create(); 

      multiPartEntityBuilder.addTextBody("user_id", userID); 

      multiPartEntityBuilder.addBinaryBody("photo", file); 

      httpPostRequest.setEntity(multiPartEntityBuilder.build()); 

      // Execute POST request to the given URL 
      HttpResponse httpResponse = null; 
      httpResponse = httpClient.execute(httpPostRequest); 

      // receive response as inputStream 
      InputStream inputStream = null; 
      inputStream = httpResponse.getEntity().getContent(); 
      String result; 
      if (inputStream != null) 
       result = convertInputStreamToString(inputStream); 
      else 
       result = "Did not work!"; 
      Log.v("result", result); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 
+0

또한, 나는 실제 오류가에서이 없습니다 (서버의 응답을 인쇄 UR 로그 캣 – Gattsu

+0

맨을 게시하시기 바랍니다 안드로이드 부분), 그 파일의 유형을 알 수 없으며, 서버는 JPEG와 PNG 파일 만받습니다 (JPEG 이미지를 보내고 있음에도 불구하고). – Tofira

+0

Pls 내 대답 확인 :) – Gattsu

답변

2

addBinaryBody 방법은 여러 서명을 가지고 -

여기 내가 사용하는 방법입니다. 이 다음과 같이이의 contentType을 추가 할 수있는 것들이다 : 여기

String filename = "imageName.jpg" 
multiPartEntityBuilder.addBinaryBody("photo", file, ContentType.MULTIPART_FORM_DATA, filename); 

Documentation

은 그리고 다른 마련하려는 경우 당신이 당신의 자신을 만들 수 있습니다 ContentType을 다음과 같이 작업을 수행합니다

public static final ContentType MYCONTENTTYPE = ContentType.create(
      "image/jpeg", Consts.ISO_8859_1); 
여기

Documentation

+0

ContentType.MULTIPART_FORM_DATA 작동하지 않습니다. "image/jpeg"로 설정해야하지만 ContentType 클래스는이 옵션을 제공하지 않습니다. – Tofira

+0

확인. 두 번째 코드 예제를 살펴보십시오. – FullPatrickJoin

관련 문제