I am making a small app in sails.js
and I need to store images in database. For that, I need to convert an image to a base64-encoded data URL so that I can save it as a string in my sails models. However, I don't know how to convert it in this form. All the older questions asked about converting an image to base64-encoded data URLs, and they answer this about doing it on the client side. However, I want to do it on the server side while I will be getting the image through a post request. How can I achieve this?
As I understand you want to convert a file into base64 encoded string. Whether the file is image or not, that does not matter.
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');
}
Usage:
var base64str = base64_encode('kitten.jpg');
It can be achieved with readFileSync, passing in the image path as the first parameter and an encoding option as the second. As show below:
var fs = require('fs');
var imageAsBase64 = fs.readFileSync('./your-image.png', 'base64');
As per the node documentation:
fs.readFileSync(path[, options])
Synchronous version of fs.readFile(). Returns the contents of the path.
If the encoding option is specified then this function returns a string. Otherwise it returns a buffer.
Here`s another simple way, use it when listing your images
@{
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" />
}
}
//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");
来源:https://stackoverflow.com/questions/24523532/how-do-i-convert-an-image-to-a-base64-encoded-data-url-in-sails-js-or-generally