How to download an image from URL in Node
New Courses Coming Soon
Join the waiting lists
import os from 'os'
import fs from 'fs'
import https from 'https'
async function downloadFileFromURL(url, fileLocation) {
return await new Promise((resolve, reject) => {
https
.get(url, (response) => {
const code = response.statusCode ?? 0
if (code >= 400) {
return reject(new Error(response.statusMessage))
}
// handle redirects
if (code > 300 && code < 400 && !!response.headers.location) {
return await downloadFile(response.headers.location)
}
// save the file to disk
const fileWriter = fs
.createWriteStream(fileLocation)
.on('finish', () => {
resolve({
fileLocation,
contentType: response.headers['content-type'],
})
})
response.pipe(fileWriter)
})
.on('error', (error) => {
reject(error)
})
})
}
const imageUrl = 'https://.... bla bla'
const fileLocation = os.tmpdir() + '/' + rnd(10, rnd.alphaLower)
await downloadFileFromURL(imageUrl, fileLocation)
→ Get my Node.js Handbook
→ Read my
Node.js Tutorial
on The Valley of Code
Here is how can I help you:
- COURSES where I teach everything I know
- CODING BOOTCAMP cohort course - next edition in 2025
- BOOKS 16 coding ebooks you can download for free on JS Python C PHP and lots more
- Follow me on X