2014-07-02 10 views
6

मेरे पास एंड्रॉइड से एक वेब सर्वर पर एक छवि अपलोड करने के लिए कोड नीचे है।एंड्रॉइड फ़ाइल अपलोड करें सामग्री के लिए सामग्री प्रकार

यह ठीक काम करता है सिवाय इसके कि प्राप्त छवि सामग्री प्रकार ऑक्टेट स्ट्रीम की है और मुझे इसे सामग्री प्रकार छवि होने की आवश्यकता है। कोई विचार है कि मैं सामग्री प्रकार कैसे सेट कर सकता हूं? के रूप में

ac.header("Content-Type", "image/png" charset=utf-8"); 

और सर्वर साइड में, आप परिभाषित किया जाना चाहिए माइम-मानचित्रण:

public void sendImage(final Bitmap mBitmap, final String caption, final WebListener webListener) { 
    Thread thread = new Thread(new Runnable() { 
     @Override 
     public void run() { 
      AQuery aq = new AQuery(smApplication); 
      Map<String, Object> params = new HashMap<String, Object>(); 
      params.put("file_name", "name" + (int) (Math.random() * 1000)); 
      params.put("caption", caption); 
      ByteArrayOutputStream blob = new ByteArrayOutputStream(); 
      mBitmap.compress(Bitmap.CompressFormat.PNG, 0 /*ignored for PNG*/, blob); 
      byte[] bitmapdata = blob.toByteArray(); 
      params.put("photo", bitmapdata); 
      AjaxCallback<JSONObject> ac = new AjaxCallback<JSONObject>() { 
       @Override 
       public void callback(String url, JSONObject object, AjaxStatus status) { 
        if (status.getCode() == 200) { 
         try { 
          String success = object.getString("success"); 
          if (success.equals("postCreated")) { 
           webListener.onCompleted(true); 
          } 
         } catch (JSONException e) { 
          webListener.onServiceError(e.getMessage()); 
         } 
        } else { 
         error(status.getError(), webListener); 
        } 
       } 
      }; 
      ac.header("Authorization", "Token token=" + Cache.getInstance().getDeviceKey()); 
      aq.ajax(HOST + API + "posts", params, JSONObject.class, ac, "photoCb"); 
     } 
    }); 
    thread.start(); 
} 
+0

आप इस के लिए एक समाधान मिला? – user1553777

+0

एक मुश्किल है। मेरे पास विंडोज 8 ऐप के लिए जावास्क्रिप्ट विकसित करना था। – Simon

+0

क्या आपने प्राधिकरण सेट करने के बाद शीर्षलेख में सामग्री प्रकार सेट करने का प्रयास किया था? एसीहेडर ("सामग्री-प्रकार", "एप्लिकेशन/पीएनजी"); – isma3l

उत्तर

0

भी इस लाइन जोड़े

<mime-mapping> 
     <extension>png</extension> 
     <mime-type>image/png</mime-type> 
</mime-mapping> 
संबंधित मुद्दे