提问者:小点点

使用NodeJS(Express)将图像转换到Base64


我正在做一个测试,我需要将一个图像转换为base64以存储在我的DB中

忘记DB,我只需要base64作为字符串。

这是我的表格:

<form action="/cadastrado" method="POST">
   <! -- other irrelevants inputs -->
   <input type="file" name="input_file" id="input_file" onchange="converterParaBase64()" required><br>
   <button type="submit" onclick="base64()">CADASTRAR</button>
</form>

这是我提交表格后的路线:

app.post("/cadastrado", (req, res) => {
    const {input_nome, input_telefone, input_cpf, input_email, input_file} = req.body;

    console.log(req);

    return res.json({
      nome: input_nome,
      telefone: input_telefone,
      cpf: input_cpf,
      email: input_email,
      // base64image: input_file.toBase64 (I need something like this)
    });
  });

我正在使用字符串输入,如nome,telefone,cpf和email(在PT-BR中的变量)

但对于input_file我不能这么说

当我console.log(req.body)时,我会得到以下信息:

{
  input_nome: '1',
  input_telefone: '2',
  input_cpf: '3',
  input_email: '4',
  input_file: 'levia.jpg'
}

我需要将这个levia.png图像转换为base64作为字符串。

我怎么能做到?


共1个答案

匿名用户

试试这个

var fs = require('fs');

app.post("/cadastrado", (req, res) => {
    const {input_nome, input_telefone, input_cpf, input_email, input_file} = req.body;

    console.log(req);

var bitmap = fs.readFileSync(input_file);
var base64File = new Buffer(bitmap).toString('base64');

    return res.json({
      nome: input_nome,
      telefone: input_telefone,
      cpf: input_cpf,
      email: input_email,
      base64image: base64File 
    });
  });