使用 AsyncHttpclient 上传位图时出错

Error uploading bitmap using AsyncHttpclient

我正在尝试将位图(相机拍摄的图像 - Android)发送到 nodejs。我正在使用 AsycnHttpClient 进行相同的操作。我能够成功发送查询参数。我确实提到了发送和接收文件的一些链接。我尝试了同样的方法,但是,我想位图和文件的 nodejs 代码需要不同(不确定?!)

你能帮忙吗?

客户端代码:

private void storeImage(Bitmap bm){
        AsyncHttpClient client = new AsyncHttpClient();
        //Append the parameters in the Service URL
        RequestParams rp = new RequestParams();
        String SERVICE_URL_REG = SERVICE_URL + "uploadImage?userID=rhari008";
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);
        byte[] data = bos.toByteArray();
        ByteArrayInputStream bInput = new ByteArrayInputStream(data);
        rp.put("image",bInput);
        client.post(SERVICE_URL_REG, rp, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                Log.d(TAG,"Successfully uploaded the image");
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                Log.d(TAG,"Error in uploading the image");
            }
        });
    }

服务端接收参数的代码:

//Image upload
router.post('/uploadImage', function(req, res, next) {
   console.log("Image upload reached for " + req.query.userID);
   var file = req.files.image;
   console.log("File received : ");
   //console.log("Image path : "+req.files.image.path);
   res.json({result:"success"});
});

请先确保您的 NodeJS 服务器支持 multipart。

是的..我终于找到了解决方案。我在 base64 上对位图进行编码以对其进行字符串化。即存储post压缩。我检索了它并将其解码为位图。有效。