将图像从Android上传到节点
我正试图通过Android Studio将多个图像上传到我的节点服务器。但是,服务器上的映像文件似乎总是损坏。我可以在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){
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();
}