2011-07-27 5 views
1

장치 파일 시스템에서 서버로 이미지를 업로드하려고합니다. WIFI 연결을 사용하면 업로드가 정상적으로 작동하지만 GPRS 일 때는 업로드가 실패합니다. 내 코드는 다음과 같습니다 :HttpUrlConnection을 사용하여 이미지 업로드

String request=null; 
byte[] attachmentData; 
//read the image from the file system 
attachmentData=bytesReadfromthefilesystem; 
//I use Apache's Base64 encoding to convert the byte array to string  
request=Base64.encode(data); 

    URL url = new URL(
     "http://mydomain.com:9090//abc/http?ID=12345"); 
     HttpURLConnection httpURLConnection = (HttpURLConnection) url 
      .openConnection(); 
    httpURLConnection.setRequestProperty("Content-Type", 
      "text/plain"); 
    httpURLConnection.setRequestMethod("POST"); 
    httpURLConnection.setDoOutput(true); 
    httpURLConnection.setChunkedStreamingMode(0); 
    httpURLConnection.connect(); 
    OutputStream outStream outStream =httpURLConnection.getOutputStream(); 
    if (outStream != null) { 
      if (request.getData().length() > 0) { 
       outStream.write(request.getBytes()); 
      } 

      outStream.flush(); 
      outStream.close(); 
      outStream = null;  
     } 

이미지 크기가 1MB에 가깝습니다. 나는 삼성 갤럭시 팝 (안드로이드 2.2.1)에 노력하고있어. 나는 어떤 오류도 얻지 않는다. 내가 여기서 뭔가를 놓치고 있니? 누군가가 친절하게 나를 도울 수 있었습니까? 미리 감사드립니다.

+0

"업로드 실패"정의 : – dimsuz

+0

이미지를 업로드하려고하는 서버에 도달하지 못했습니다. :) –

답변

-1

setConnectionTimeout() ~ 300000 (5 분) 정도 시도하십시오.

+0

나는 타임 아웃을 5 분으로 설정했지만 여전히 동일하게 보인다. 이 일을하는 다른 더 좋은 방법이 있습니까? –

+0

MultiPartPost를 만들어야합니다. 이 작업을 수행하는 방법은 SO [thread] (http://stackoverflow.com/questions/3038409/how-to-send-http-post-request-and-recieve-response/3038747#3038747)를 확인하십시오. –

+0

약 200KB의 작은 이미지를 사용하여 GPRS –

1

AndroidManifest 파일에 대한 권한을 설정 했습니까?

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 
관련 문제