如何使用fs读取和保存base64图像
如何使用fs读取和保存base64图像
我正在创建一个API节点,在前端(与API分开,我使用fetch发送数据),我选择一个jpg文件,并以base64的形式发送到API。通常我在控制器中使用"var imagem = req.body.imagem;"接收base64。现在我需要将这个base64转换为图像并保存在"../../public/img"目录中。我该如何做到这一点?
const mongoose = require('mongoose'); const Cup = require('../models/Cup'); module.exports = { //列表 async index(req, res) { const cups = await Cup.find(); return res.json(cups); }, //创建 async store(req, res) { var nome = req.body.nome; var caminho = req.body.caminho; var tema = req.body.tema; var imagem = req.body.imagem; const cup = await Cup.create({ nome: nome, caminho: caminho, tema: tema }); return res.json(cup); } }
如何使用fs读取和保存base64图像?
问题的原因:用户想要将base64图像转换为二进制表示,并将其保存到本地文件系统中。他们使用了fs模块的writeFileSync函数来保存文件,但遇到了问题。
解决方法:用户可以使用Buffer对象将base64字符串转换为二进制表示,然后使用fs模块的writeFileSync函数保存文件。
以下是解决方法的代码示例:
const fs = require("fs"); const base64Image = "BASE_64_IMAGE"; const imageBuffer = new Buffer(base64Image, "base64"); fs.writeFileSync("image.png", imageBuffer);
用户还提到了使用req.body.imagem来获取base64图像,并将其保存为message.jpg文件。但是,他们在尝试打开图像时遇到了“不支持此文件格式”的错误。解决此问题的方法是检查req.body.imagem中的base64图像格式是否正确。
用户最终成功解决了问题,并感谢了提供帮助的人。
以上是关于如何使用fs读取和保存base64图像的问题原因和解决方法的整理。