如何在 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'))
我正在尝试在服务器上上传图片,因为当用户从 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'))