DEV Community

Rahul kumar
Rahul kumar

Posted on Originally published at dsabyte.com

How to download an image from URL in nodejs

In this article, we'll learn that how can we download images from a remote URL. After downloading the image, we will encode it in base64 format.

original post

const { Buffer } = require("buffer");
const axios = require("axios");
let url = "https://res.cloudinary.com/practicaldev/image/fetch/s--nh8zSFgY--/c_fill,f_auto,fl_progressive,h_320,q_auto,w_320/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/285604/94170c66-2590-4002-90e0-ec4dc94ed7b5.png";

async function downloadImage(url){
    try{
    // download the raw image file
    const raw = await axios.get(url, {
        responseType: "arraybuffer",
    })

    // create a base64 encoded string
    let base64 = Buffer.from(raw.data, "binary").toString("base64");

    // create image src
    let image = `data:${raw.headers["content-type"]};base64,${base64}`;

    // actual image 
    let imgFile = `<img src="${image}"/>`;
    }catch(e){
        console.log(e);
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)