2012-08-23 11 views
0

我想發送帶有一些評論從Android設備到PHP服務器的圖像。我想利用JSON來交換數據。我看了很多地方,但我沒有得到正確的提示。任何人都可以建議一些指針,以獲得這與PHP的工作?圖片與來自Android的在PHP中發送的評論

我不想使用base65,因爲它會增加dataload和圖像大小,這也是一個問題。請建議您的想法和正確的方法來發展這一點。

我的Android代碼:

// Building Parameters 
       List<NameValuePair> params = new ArrayList<NameValuePair>(); 
       params.add(new BasicNameValuePair("name", name)); 
       params.add(new BasicNameValuePair("price", price)); 
       params.add(new BasicNameValuePair("description", description)); 
       params.add(new BasicNameValuePair("image","/sdcard/DCIM/android_1.png")); 
// getting JSON Object  
      JSONObject json = jsonParser.makeHttpRequest(url_create_product,"POST", params); 

      // check log cat fro response 
      Log.d("Create Response", json.toString()); 
// check for success tag 
      try { 
       int success = json.getInt(TAG_SUCCESS); 

       if (success == 1) { 
        // successfully created product 
        Intent i = new Intent(getApplicationContext(), AllProductsActivity.class); 
        startActivity(i); 

        // closing this screen 
        finish(); 
       } else { 
        // failed to create product 
       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

在哪裏,當我在裏面添加圖像與多:

MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
      try { 
       reqEntity.addPart("name", new StringBody(name)); 
       reqEntity.addPart("Id", new StringBody(price)); 
       reqEntity.addPart("title",new StringBody(description)); 
       //reqEntity.addPart("pic", new FileBody(new File("/sdcard/DCIM/android_1.png"))); 

      } catch (UnsupportedEncodingException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
      Bitmap bitmap = null ; 
      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
      bitmap.compress(CompressFormat.JPEG, 100, bos); 
      byte[] data = bos.toByteArray(); 
      ByteArrayBody bab = new ByteArrayBody(data, "/sdcard/android_1.png"); 
      reqEntity.addPart("pic", bab); 

我不知道我怎麼可以通過這個多reqentitty使用JSON:

//獲取JSON對象
JSONObject json = jsonParser.makeHttpRequest(url_create_product,「POST」,params);

以及我如何將它作爲PHP中的圖像讀取。如果沒有下面的圖像的PHP代碼工作:

<?php 

/* 
* Following code will create a new product row 
* All product details are read from HTTP Post Request 
*/ 

// array for JSON response 
$response = array(); 
$target_path1 = "uploads/"; 

// check for required fields 
if (isset($_POST['name']) && isset($_POST['price']) && isset($_POST['description'])) { 

    $name = $_POST['name']; 
    $price = $_POST['price']; 
    $description = $_POST['description'];  
//I have data from android here now but How I can read image here ? 

所以,我有兩個問題在這裏: 1.如何將圖像傳遞作爲JSONObject的一部分(第一個代碼,而無需像工作) 2.如何閱讀本圖像回到PHP?

我真的很感激任何意見或建議。 謝謝。

回答

0

我從來沒有使用JSON來傳遞圖像,只有文本,但你可以使用android通過使用HTTP發佈信息。看看這個教程,它幫助我http://reecon.wordpress.com/2010/04/25/uploading-files-to-http-server-using-post-android-sdk/

+0

我們將嘗試這個,但我不知道如何發送「文本」與圖像? – Raj

+0

那麼你需要使用JSON。大部分與你試圖做的工作都依賴於PHP而不是android。您需要做的是將文本與JSON一起傳遞,並將圖像作爲帖子 – Shaun