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