2012-11-06 6 views
0

나는 php server에 이미지를 게시 할 수 없습니다. 나는 검색하는 동안 찾은 코드가 있지만 내 질문은 현재 요청에서 사용자 이름, 암호, 모듈 및 함수 이름을 전달하는 방법입니다. 이것은 대부분의 사이트에서 발견 한 코드입니다.android의 PHP 서버에 이미지 업로드

HttpURLConnection connection = null; 
DataOutputStream outputStream = null; 
DataInputStream inputStream = null; 

String pathToOurFile = "/data/file_to_send.mp3"; 
String urlServer = "http://192.168.1.1/handle_upload.php"; 
String lineEnd = "\r\n"; 
String twoHyphens = "--"; 
String boundary = "*****"; 

int bytesRead, bytesAvailable, bufferSize; 
byte[] buffer; 
int maxBufferSize = 1*1024*1024; 

try 
{ 

FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile)); 

URL url = new URL(urlServer); 
connection = (HttpURLConnection) url.openConnection(); 

// Allow Inputs & Outputs 
connection.setDoInput(true); 
connection.setDoOutput(true); 
connection.setUseCaches(false); 

// Enable POST method 
connection.setRequestMethod("POST"); 

connection.setRequestProperty("Connection", "Keep-Alive"); 
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); 

outputStream = new DataOutputStream(connection.getOutputStream()); 
outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd); 
outputStream.writeBytes(lineEnd); 

bytesAvailable = fileInputStream.available(); 
bufferSize = Math.min(bytesAvailable, maxBufferSize); 
buffer = new byte[bufferSize]; 

// Read file 
bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

while (bytesRead > 0) 
{ 
outputStream.write(buffer, 0, bufferSize); 
bytesAvailable = fileInputStream.available(); 
bufferSize = Math.min(bytesAvailable, maxBufferSize); 
bytesRead = fileInputStream.read(buffer, 0, bufferSize); 
} 

outputStream.writeBytes(lineEnd); 
outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

// Responses from the server (code and message) 
serverResponseCode = connection.getResponseCode(); 
serverResponseMessage = connection.getResponseMessage(); 

fileInputStream.close(); 
outputStream.flush(); 
outputStream.close(); 
} 
catch (Exception ex) 
{ 
//Exception handling 
} 

내가 갇혀 here..any의 도움을 받고 있어요는 감사합니다 당신이 실제로 수행 할 작업을

+0

을 감사합니다. FTP 서버 또는 simpel에 이미지를 업로드하면 서버 측에서 PHP와 상호 작용을합니까? –

답변

5
public static String UplaodData(byte[] data , String text, String id, boolean personalCheck, boolean privateCheck, String ImageName, boolean isClaimNote, String url, String percentage, boolean showProgress) 
{ 
    HttpURLConnection connection = null; 
    DataOutputStream outputStream = null; 
    DataInputStream inputStream = null; 


    //String claimId = ClaimList.claimId; 

    String noteType = null; 
    String isImageFile = null; 

    String Responce     = ""; 
    String urlServer    = url; 
    String lineEnd     = "\r\n"; 
    String twoHyphens    = "--"; 
    String boundary     = "*****"; 
    System.out.println("Value of note type----------------------- "+noteType); 
    try 
    { 

     URL url1 = new URL(urlServer); 
     connection = (HttpURLConnection) url1.openConnection(); 

     // Allow Inputs & Outputs 
     connection.setDoInput(true); 
     connection.setDoOutput(true); 
     connection.setUseCaches(false); 

     // Enable POST method 
     connection.setRequestMethod("POST"); 

     connection.setRequestProperty("Connection", "Keep-Alive"); 
     connection.setRequestProperty("Content-Type", "multipart/form-data; boundary="+boundary); 

     outputStream = new DataOutputStream(connection.getOutputStream()); 
     if (data != null) 
     { 
      outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
      outputStream.writeBytes("Content-Disposition: form-data; Content-type: image/png; name=\"attachment\"; filename=\""+ImageName+"\"" + lineEnd); 
      outputStream.writeBytes(lineEnd); 
      outputStream.write(data, 0, data.length); 
      outputStream.writeBytes(lineEnd); 
     } 

     if(isClaimNote){ 
      outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
      outputStream.writeBytes("Content-Disposition: form-data; name=\"claimId\"" + lineEnd); 
      outputStream.writeBytes(lineEnd); 
      outputStream.writeBytes(id); 
      outputStream.writeBytes(lineEnd); 
     }else{ 
      outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
      outputStream.writeBytes("Content-Disposition: form-data; name=\"activityId\"" + lineEnd); 
      outputStream.writeBytes(lineEnd); 
      outputStream.writeBytes(id); 
      outputStream.writeBytes(lineEnd); 
      if(showProgress){ 
       outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
       outputStream.writeBytes("Content-Disposition: form-data; name=\"activityResolution\"" + lineEnd); 
       outputStream.writeBytes(lineEnd); 
       outputStream.writeBytes(percentage); 
       outputStream.writeBytes(lineEnd); 
      } 
     } 

     outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
     outputStream.writeBytes("Content-Disposition: form-data; name=\"noteType\"" + lineEnd); 
     outputStream.writeBytes(lineEnd); 
     outputStream.writeBytes(noteType); 
     outputStream.writeBytes(lineEnd); 

     outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
     outputStream.writeBytes("Content-Disposition: form-data; name=\"noteText\"" + lineEnd); 
     outputStream.writeBytes(lineEnd); 
     outputStream.writeBytes(text); 
     outputStream.writeBytes(lineEnd); 
     outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

     outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
     outputStream.writeBytes("Content-Disposition: form-data; name=\"isImageFile\"" + lineEnd); 
     outputStream.writeBytes(lineEnd); 
     outputStream.writeBytes(isImageFile); 
     outputStream.writeBytes(lineEnd); 
     outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

     inputStream = new DataInputStream(connection.getInputStream()); 

     int serverResponseCode = connection.getResponseCode(); 
     String serverResponseMessage = ""; 


     while ((serverResponseMessage = inputStream.readLine()) != null) 
     { 
       Responce = Responce + serverResponseMessage; 
     } 

     outputStream.flush(); 
     outputStream.close(); 
     return Responce; 

     } 
     catch (Exception ex) 
     { 
      Responce = ex.toString(); 
      return Responce; 
     } 
} 

Above is working code to upload multiparty data, customize this as per you parameter list 
+0

위 코드에서 사용하지 않은 매개 변수를 제거하고 필요한 경우 더 많이 추가 할 수 있습니다. – Vashishth

+0

고마워. 내 friend.it은 잘된 일이야! 정확히 내가 원하는거야. 고마워 ...! –