将图像从Android上传到节点

将图像从Android上传到节点,android,node.js,base64,image-uploading,Android,Node.js,Base64,Image Uploading,我正试图通过Android Studio将多个图像上传到我的节点服务器。但是,服务器上的映像文件似乎总是损坏。我可以在Android中拍摄和预览图片,但无法将其存储在我的服务器上 这是我的服务器代码 app.post('/upload', function(req, res) { var base64Data = req.rawBody; fs.writeFile("test.jpg",base64Data,'base64',function(err,written){

我正试图通过Android Studio将多个图像上传到我的节点服务器。但是,服务器上的映像文件似乎总是损坏。我可以在Android中拍摄和预览图片,但无法将其存储在我的服务器上

这是我的服务器代码

app.post('/upload', function(req, res) {
    var base64Data = req.rawBody;
    fs.writeFile("test.jpg",base64Data,'base64',function(err,written){
        if(err) console.log(err);
        else {
            console.log("file Succesfully written ");    
            cloudinary.uploader.upload("test.jpg", function (image) {
                if(image !== undefined) {

                     res.json({link: image.secure_url}).end();
                     console.log("url = " , image.secure_url);
                 //   fs.unlink(ImageFile);
                } else console.log.error("Error uploading to Cloudinary, ", image);
            });
        }
    });
});
这是我用来将位图转换为编码的Base64字符串的前端代码。

final String encodedString = ImageBase64.encode(fileArray.get(i));
下面是一个encodedString在设置后保存的日志。显然,未显示完整值

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
                                                                          AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
                                                                          AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAMgA+gDASIA
                                                                          AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
但是,在我的后端,它显示为

2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB%0AAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH%2F2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB%0AAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH%2FwAARCAMgA%2BgDASIA%0AAhEBAxEB%2F8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQ

如果你得到它的url编码,那么你应该url解码它

如果您对其进行url编码,则应该对其进行url解码

提示:您在后端看到的是来自前端的encodedString的URL编码版本。对此,我的工作是什么@AlexGittemeieri如果你得到了url编码,那么你应该对它进行url解码。哦,我的上帝!非常感谢@greenapps!如何将您的评论标记为正确?提示:您在后端看到的是来自前端的encodedString的urlencoded版本。对此,我的工作是什么@AlexGittemeieri如果你得到了url编码,那么你应该对它进行url解码。哦,我的上帝!非常感谢@greenapps!我如何才能将你的评论标记为正确?谢谢兄弟,但我的问题是后端没有正确解析图像。然而,我明白了!感谢Hanks bro,但我的问题是后端没有正确解析图像。然而,我明白了!谢谢!:)。对于任何想要在node.js上解码的人。使用以下命令。var测试=unescape(从值到解码);太好了!:)。对于任何想要在node.js上解码的人。使用以下命令。var测试=unescape(从值到解码);
InputStream imageStream;
                try {
                    imageStream = getContentResolver().openInputStream(uri);//uri is the image URI
                    Bitmap bm = BitmapFactory.decodeStream(imageStream);
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
                    byte[] byteArray = baos.toByteArray();
                    String encodedImage = Base64.encodeToString(byteArray,Base64.NO_WRAP);//encodedImage is your image string

                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }