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();
}
आप इस के लिए एक समाधान मिला? – user1553777
एक मुश्किल है। मेरे पास विंडोज 8 ऐप के लिए जावास्क्रिप्ट विकसित करना था। – Simon
क्या आपने प्राधिकरण सेट करने के बाद शीर्षलेख में सामग्री प्रकार सेट करने का प्रयास किया था? एसीहेडर ("सामग्री-प्रकार", "एप्लिकेशन/पीएनजी"); – isma3l