How do I convert an image to a base64-encoded data URL in sails.js or generally in the servers side JavaScript?

Javascriptnode.jssails.js

Javascript Problem Overview


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?

Javascript Solutions


Solution 1 - Javascript

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');

Source

Solution 2 - Javascript

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.

Solution 3 - Javascript

//You can use the 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);
        }
    )

Solution 4 - Javascript

//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");

Solution 5 - Javascript

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" />
    }
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAdil MalikView Question on Stackoverflow
Solution 1 - JavascriptalandarevView Answer on Stackoverflow
Solution 2 - JavascriptJSON C11View Answer on Stackoverflow
Solution 3 - Javascriptchalmer jay jameroView Answer on Stackoverflow
Solution 4 - JavascriptVagner Kugelmeier TondelloView Answer on Stackoverflow
Solution 5 - JavascriptSiboneloView Answer on Stackoverflow