Je fais une petite application dans sails.js
et j'ai besoin de stocker des images dans une base de données. Pour cela, je dois convertir une image en une URL de données encodée en base64 afin de pouvoir l'enregistrer en tant que chaîne dans mes modèles Sails. Cependant, je ne sais pas comment le convertir sous cette forme. Toutes les questions plus anciennes posées sur la conversion d'une image en URL de données codées en base64, et elles répondent à cela au sujet de le faire côté client. Cependant, je souhaite le faire côté serveur pendant que je recevrai l'image via une demande de publication. Comment puis-je atteindre cet objectif?
Si je comprends bien, vous voulez convertir un fichier en chaîne encodée en base64. Que le fichier soit image ou non, cela n'a pas d'importance.
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');
Cela peut être réalisé avec readFileSync, en passant le chemin de l'image en tant que premier paramètre et une option de codage en tant que second. Comme le montre ci-dessous:
var fs = require('fs');
var imageAsBase64 = fs.readFileSync('./your-image.png', 'base64');
Selon le noeud documentation:
fs.readFileSync (chemin [ options])
Version synchrone de fs.readFile (). Retourne le contenu du chemin.
Si l'option de codage est spécifiée, cette fonction renvoie un chaîne. Sinon, il retourne un tampon.
Voici un autre moyen simple, utilisez-le pour lister vos 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");