如何在 NodeJs 中使用 Base64 字符串上传图片

How to upload image using Base64 string in NodeJs

我正在尝试在服务器上上传图片,因为当用户从 android 应用程序上传图片时,我正在获取 base64 字符串,尽管我在后端获取了该 base64 字符串,但我如何将其转换为图片和将其保存到某个目录中。

下面是我的代码:

server.js

const express = require('express');
const app = express();

const port = process.env.PORT || 3000;

app.use(require('./routes/upload'));

app.listen(port, console.log(`App is running at ${port} port.`));

upload.js

const express = require('express');
const router = express.Router();

router.use(express.json());
router.use(express.urlencoded({extended:true}));

router.post('/upload',(req,res) => {

   const name = req.body.base64Image;
   console.log(name);
});

module.exports = router;

有人告诉我怎样才能达到预期的结果。

您需要创建一个缓冲区

const base64Data = new Buffer.from(req.body.base64data.replace(/^data:image\/\w+;base64,/, ""), 'base64');

然后应该可以保存或上传到 s3 等

您可以使用 fs 将 base64 行保存到图像文件

fs.writeFileSync(path.join(uploadPath, fileName), new Buffer(base64, 'base64'))