如何使用fs

时间:2019-01-19 20:27:23

标签: javascript node.js fs

我正在创建一个前端的api节点(它与api分离,我正在使用访存来发送数据)我正在选择一个jpg文件并以base64格式发送到api,通常会收到控制器中的base64,带有“ var imagem = req.body.imagem;”。我现在需要使用此base64,并将其转换为图像以保存在../../public/img目录中。我该怎么办?

const mongoose = require('mongoose');
const Cup = require('../models/Cup');
module.exports = {
    //listagem
    async index(req, res) {
        const cups = await Cup.find();

        return res.json(cups);
    },
    //criaçao
    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);
    }
}

1 个答案:

答案 0 :(得分:3)

您可以通过将字符串转换为Buffer-new Buffer(b64_image, 'base64')(将更多信息在this answer中进行转换)将图像从base64表示形式转换为二进制表示形式。然后,您可以使用fs.writeFile(如果要异步保存文件)或fs.writeFileSync(如果要同步保存文件)将缓冲区保存到本地文件系统。

您要执行的操作可以通过以下方式完成:

const fs = require("fs");

const base64Image = "BASE_64_IMAGE";
const imageBuffer = new Buffer(base64Image, "base64");

fs.writeFileSync("image.png", imageBuffer);