2012-02-29 182 views
3

我有一個應用程序的想法,目前正在學習Android開發。我非常熟悉創建簡單的獨立應用程序。如何讓Android應用程序通過互聯網與Web服務器通信?

我也熟悉PHP和虛擬主機。

我想要做的是,使android應用程序通過互聯網發送圖像到服務器,並使服務器返回處理後的圖像。我不知道該怎麼做。

你能告訴我怎樣才能實現這個目標或者我應該研究哪些主題?另外,我可以使用哪些腳本在Web服務器上進行處理?特別是,我可以使用PHP或Java?

謝謝!

回答

6
For Image Uploading 
///Method Communicate with webservice an return Yes if Image uploaded else NO 
String executeMultipartPost(Bitmap bm,String image_name) { 
    String resp = null; 
    try { 
     ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
     bm.compress(CompressFormat.JPEG, 75, bos); 
     byte[] data = bos.toByteArray(); 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpPost postRequest = new HttpPost("domain.com/upload_image.php"); 
     ByteArrayBody bab = new ByteArrayBody(data, image_name); 

     MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
     reqEntity.addPart("uploaded", bab); 
     reqEntity.addPart("photoCaption", new StringBody("sfsdfsdf")); 
     postRequest.setEntity(reqEntity); 
     HttpResponse response = httpClient.execute(postRequest); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
     String sResponse; 
     StringBuilder s = new StringBuilder(); 
     while ((sResponse = reader.readLine()) != null) { 
      s = s.append(sResponse); 
     } 
     resp=s.toString(); 
    } catch (Exception e) { 
     // handle exception here 
     Log.e(e.getClass().getName(), e.getMessage()); 
    } 
    return resp; 
} 

//PHP Code 
<?php 

    $target = "upload/"; 

    $target = $target . basename($_FILES['uploaded']['name']) ; 
    $ok=1; 
    if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
    { 
     echo "yes"; 
    } 
    else { 
     echo "no"; 
    } 
?> 
圖像的文件名
1

通常我們用HTTP連接做到這一點,你可以通過圖像中的 post數據,以備將來參考請參閱link

0

你必須創建它接受參數一個簡單的PHP的Web服務作爲圖像字節,並處理圖像並存儲在服務器中。對於這個Android應用程序將使用HttpPost發送圖像數據字節到服務器。

用於檢索目的,你必須創建一個其他網絡服務,將輸出從那裏Android應用程序可以檢索圖像

相關問題