如何在sails.js中或通常在服务器端JavaScript中将图像转换为base64编码的数据URL?

时间:2014-07-02 05:33:01

标签: javascript node.js sails.js

我正在sails.js制作一个小应用程序,我需要将图像存储在数据库中。为此,我需要将图像转换为base64编码的数据URL,以便我可以将其保存为我的sails模型中的字符串。但是,我不知道如何以这种形式转换它。所有较早的问题都是关于将图像转换为base64编码的数据URL的问题,他们回答了有关在客户端进行此操作的问题。但是,我想在服务器端执行此操作,而我将通过发布请求获取图像。我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:56)

据我所知,您希望将文件转换为base64编码的字符串。无论文件是否是图像,都无关紧要。

var fs = require('fs');

// function to encode file data to base64 encoded string
function base64_encode(file) {
    // read binary data
    var bitmap = fs.readFileSync(file);
    // convert binary data to base64 encoded string
    return new Buffer(bitmap).toString('base64');
}

用法:

var base64str = base64_encode('kitten.jpg');

Source

答案 1 :(得分:31)

可以使用 readFileSync 来实现,将图像路径作为第一个参数传递,将编码选项作为第二个参数传递。如下所示:

var fs = require('fs');

var imageAsBase64 = fs.readFileSync('./your-image.png', 'base64');

根据node文档:

  

fs.readFileSync(路径[,选项])

     

fs.readFile()的同步版本。返回   路径的内容。

     

如果指定了编码选项,则此函数返回a   串。否则它返回一个缓冲区。

答案 2 :(得分:2)

//可以使用image-to-base64

const imageToBase64 = require('image-to-base64');

imageToBase64("URL") // insert image url here. 
    .then( (response) => {
          console.log(response);  // the response will be the string base64.
      }
    )
    .catch(
        (error) => {
            console.log(error);
        }
    )

答案 3 :(得分:0)

这是另一种简单的方法,在列出图像时使用它

@{
    if (item.ImageData != null)
    {
        string imageBase64 = Convert.ToBase64String(item.ImageData);
        string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
        <img src="@imageSrc" width="100" height="100" />
    }
}

答案 4 :(得分:0)

//instala via npm
npm install --save image-to-uri

//declara no codigo
const imageToUri = require('image-to-uri');

//implementa 
let imagem = imageToUri("caminho da sua imagem");