2012-05-17 2 views
0

Привет всем У меня есть изображение, где я устанавливаю изображение, и при щелчке этого изображения отправлю на сервер, пожалуйста, предложите мне, как я могу это сделатьКак разместить изображение изображения на сервере?

+0

http://vikaskanani.wordpress.com/2011/01/29/android-image-upload-activity/ – Venky

+1

Ключ к задавать вопросы на SO, чтобы задавать вопросы, которые не могут быть легко ответил от Google. Поиск «android send image to server» привел к: https://www.google.com/#hl=ru&gs_nf=1&tok=33-mJVQ5Ui7ScDQdBFkBOg&cp=18&gs_id=1y&xhr=t&q=android+send+image+to+server&pf=p&sclient = пси-абы & OQ = андроид + отправить + изображение & водно = 0 & AQI = g4 & акло = & gs_l = & PBX = 1 & БАВ = on.2, or.r_gc.r_pw.r_cp.r_qf., cf.osb & Fp = 95c2cca83de3aed3 & BIW = 1680 & БиГ = 912. Пожалуйста, прочитайте [ask]. – Jack

ответ

0

Добавить библиотеку Volley

compile 'com.android.volley:volley:1.0.0' 

и разрешение сетки в AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.READ_PROFILE"/> 
<uses-permission android:name="android.permission.READ_CONTACTS"/> 

Сфотографируйте imageview и преобразовать его в строку

ImageView ivImage1 = (ImageView) findViewById(R.id.img_add1_send); 

    String mmm=getStringImage(((BitmapDrawable) ivImage1.getDrawable()).getBitmap()); 

Функциональное преобразование фото в строку

public String getStringImage(Bitmap bm){ 
ByteArrayOutputStream ba=new ByteArrayOutputStream(); 
bm.compress(Bitmap.CompressFormat.PNG,90,ba); 
byte[] by=ba.toByteArray(); 
String encod= Base64.encodeToString(by,Base64.DEFAULT); 
return encod; 

}

И превратили строку в Json

JSONObject requestJsonObject = new JSONObject(); 
requestJsonObject.put("image", mmm); 

Мы посылаем JSon к серверу с помощью следующей функции

 JsonObjectRequest jjj = new JsonObjectRequest(Request.Method.POST, 
      "http://192.168.16.1/dashbDoard/wDaryounes/GetDShopDDDBojId.php", requestJsonObject, 
      new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 

        if (response == 1) { 


         Toast.makeText(getApplication(), "yessss", Toast.LENGTH_SHORT).show(); 
        } else { 

          Toast.makeText(getApplication(), "no", Toast.LENGTH_SHORT).show(); 

         } 
        },new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 

         } 
        }); 
        jjj.setRetryPolicy(new DefaultRetryPolicy(18000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
        Volley.newRequestQueue(G.context).add(jjj); 


      } 

На сервере, легко превратить эту строку в фото

код PHP

$ IMAGE = $ _POST [ 'изображение'];

$decodedImage = base64_decode($image); 

    $location = "img/" . $title . "_" . rand(rand(5 , 50) , rand(500 , 900)) . 
       "_" . date("i") . "_" . date("d-m-Y") . ".jpg"; 

    $resultOfCreatingImage = file_put_contents($location , $decodedImage); 

    if($resultOfCreatingImage == false) 
    { 
     $error['error'] = "failure_creating_image"; 
    } 
    else 
    { 
     $q= "INSERT INTO ads(image) " ."VALUES('$location') 
      $res = $connect->prepare($q); 
     $res->execute(); 
     if ($res->rowCount()>0) { 
      return 1; 
     }else{ 
      return 0; 
     } 

    } 
Смежные вопросы