javascript - Node.js:将 Android-Base64 编码图像保存为文件

标签 javascript php android node.js base64

我正在尝试将我的 REST-web 服务器从 PHP 转换为 Express.js/Node.js。

有一个请求,其中包含由 Android Base64 库编码的图像:

ByteArrayOutputStream bAOS = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, bAOS);
params.put("image", Base64.encodeToString(bAOS.toByteArray(), Base64.DEFAULT));

在服务器端,它应该简单地解码数据并将图像保存到目录中。例如,我使用“base-64”npm-package ( https://www.npmjs.com/package/base-64 ) 按以下方式尝试:

const image = req.body['image'];
const decodedData = this.base64.decode(image);
this.fs.writeFileSync(PICTURES_PATH + 'image.png', decodedData);

但它似乎解码得不好,我无法查看该文件,而且它的大小太小。这不是我唯一的尝试,我尝试使用 Node.js-buffers 或另一个名为“base64-img”的包( https://www.npmjs.com/package/base64-img )。最后一个适用于我使用 Postman 发送的测试请求,但无法处理应用程序发送的数据。控制台显示 Android 应用程序在开始时不发送“data:image/png;base64,...”,这会导致 base64-img 失败。

在 PHP 中我刚刚做了某事。像:

$decodedImage=base64_decode("$image");
file_put_contents("pictures/".$name.".PNG", $decodedImage);

这是有效的。我希望应用程序无需更新即可继续工作,因此我需要在服务器端修复它。

有人可以帮我吗?谢谢大家!

最佳答案

你不需要使用任何库,一切都在nodejs中。

const image = req.body['image']; const demodData = new Buffer(image, 'base64'); fs.writeFileSync(PICTURES_PATH + 'image.png',decodedData);

关于javascript - Node.js:将 Android-Base64 编码图像保存为文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49848601/

相关文章:

android - Android 中的 MVVM 存储库

android - 触摸画圆

javascript - 如何访问 :after and :before properties of box-shadow in javascript

javascript - Javascript 中的日期函数格式

php - 发送多个 url 的 ajax 请求

php - 如果没有附加元素,Wordpress 媒体按钮不起作用?

android - 无法在android的通知抽屉中展开通知

javascript - typeof 函数不是函数

javascript - 任何使 JavaScript 比较始终为真的值?

php - 在MYSQL中选择相关行但不限制基于WHERE子句的结果