2012-10-09 17 views
9

मैं सर्वर पर चित्र अपलोड करने कोड है और यह काम करता है के साथ एंड्रॉयड में सर्वर के लिए छवि (बिटमैप) भेजने के लिए कैसे,बहुखण्डीय-फ़ॉर्म डेटा json

HttpEntity resEntity; 

       HttpClient httpClient = new DefaultHttpClient(); 
       HttpPost post = new HttpPost(Constants.url_create_product); 
       MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
       File file= new File(path); 
       FileBody bin = new FileBody(file); 

       reqEntity.addPart("phone", new StringBody(mPhoneNumber)); 
       reqEntity.addPart("prod_title", new StringBody(namapro)); 
       reqEntity.addPart("prod_price", new StringBody(hargapro)); 
       reqEntity.addPart("prod_desc", new StringBody(despro)); 
       reqEntity.addPart("prod_order", new StringBody(orderpro)); 
       reqEntity.addPart("prod_image", bin); 

       post.setEntity(reqEntity); 
        HttpResponse response = httpClient.execute(post); 
       resEntity = response.getEntity(); 
       String response_str = EntityUtils.toString(resEntity); 
       Gson gson = new Gson(); 
       gson.toJson(response_str); 
       if (resEntity != null) { 
        Log.i("RESPONSE",response_str); 
        runOnUiThread(new Runnable(){ 
          public void run() { 
           try { 
            Toast.makeText(getApplicationContext(),"Upload Complete. Check the server uploads directory.", Toast.LENGTH_LONG).show(); 
           } catch (Exception e) { 
            e.printStackTrace(); 
           } 
           } 
         }); 
       } 

लेकिन मैं मेनू छवि संपादक है। कि संपादक इस

Bundle extras = data.getExtras(); 

       if (extras != null) {    
        photo = extras.getParcelable("data"); 

        mImageView.setImageBitmap(photo); 
       } 

       File f = new File(mImageCaptureUri.getPath());    

       if (f.exists()) f.delete(); 

       break; 

मैं पूछता हूँ करना चाहते हैं, कैसे समाधान पैरामीटर बिटमैप के साथ सर्वर से छवि भेजने के लिए की तरह फसल छवि और thats कोड वापसी बिटमैप मूल्य है। जैसा कि आप छवि भेजने के लिए मेरे कोड को जानते हैं अब पैरामीटर पथ (स्ट्रिंग) का उपयोग करें।

उत्तर

29
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
photo.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
byte[] imageBytes = baos.toByteArray(); 
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); 

फिर एक String के रूप में इस encodedImage भेजने के लिए और अपने सर्वर में आप छवि को ही प्राप्त करने के लिए यह डिकोड करने के लिए की आवश्यकता होगी।

+0

माफ करना, iam नौसिखिया उपयोग करते हैं, तो कैसे करने के लिए सर्वर छवि को स्वयं प्राप्त करने के लिए इसे डीकोड करें ?? –

+0

इस बात पर निर्भर करता है कि आप अपने सर्वर पर किस भाषा का उपयोग कर रहे हैं। PHP ने इसके लिए विधि में बनाया है। बस सर्वर + डीकोड छवि स्ट्रिंग पर भाषा गूगल। – Carnal

+0

कोई समस्या नहीं दोस्त! – Carnal

4

* तीन पुस्तकालय
1.httpclient-4.3.6
2.httpcore-4.3.3
3.httpmime-4.3.6

  byte[] data = null; 
      try {  
       String url = "http://andapp.freetings.in/testbyme.php?"; 
       HttpClient httpclient = new DefaultHttpClient(); 
       HttpPost httppost = new HttpPost(url); 
       MultipartEntity entity = new MultipartEntity(); 

       if(imageBitmap!=null){ 
        ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
        imageBitmap.compress(CompressFormat.JPEG, 100, bos); 
        data = bos.toByteArray(); 
        entity.addPart("uplod_img", new ByteArrayBody(data,"image/jpeg", "test2.jpg")); 
       } 
       // entity.addPart("category", new StringBody(categoryname,"text/plain",Charset.forName("UTF-8"))); 
       entity.addPart("category", new StringBody(catid,"text/plain",Charset.forName("UTF-8"))); 
       entity.addPart("your_contact_no", new StringBody(phone,"text/plain",Charset.forName("UTF-8"))); 
       entity.addPart("your_emailid", new StringBody(email,"text/plain",Charset.forName("UTF-8"))); 
       entity.addPart("your_name", new StringBody(name,"text/plain",Charset.forName("UTF-8"))); 

       httppost.setEntity(entity); 
       HttpResponse resp = httpclient.execute(httppost);   
       HttpEntity resEntity = resp.getEntity(); 
       String string=EntityUtils.toString(resEntity); 
       // Log.e("sdjkfkhk", string); 
       return resEntity; 
      } catch (ClientProtocolException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
+0

यह मेरे लिए काम कर रहा है –

+0

बाइटएरेबॉडी –

+0

खोजने में असमर्थ आपको तीन जार फ़ाइल जोड़ने की आवश्यकता है जो httpclient-4.1.jar, httpcore-4.1.jar और httpmime-4.1.jar libs फ़ोल्डर में हैं –

संबंधित मुद्दे