Spaces:
Runtime error
Runtime error
const axios = require('axios'); | |
const fs = require('fs'); | |
const path = require('path'); | |
async function saveImageFromUrl(url, outputPath, outputFilename) { | |
try { | |
// Fetch the image from the URL | |
const response = await axios({ | |
url, | |
responseType: 'stream', | |
}); | |
// Check if the output directory exists, if not, create it | |
if (!fs.existsSync(outputPath)) { | |
fs.mkdirSync(outputPath, { recursive: true }); | |
} | |
// Ensure the output filename has a '.png' extension | |
const filenameWithPngExt = outputFilename.endsWith('.png') | |
? outputFilename | |
: `${outputFilename}.png`; | |
// Create a writable stream for the output path | |
const outputFilePath = path.join(outputPath, filenameWithPngExt); | |
const writer = fs.createWriteStream(outputFilePath); | |
// Pipe the response data to the output file | |
response.data.pipe(writer); | |
return new Promise((resolve, reject) => { | |
writer.on('finish', resolve); | |
writer.on('error', reject); | |
}); | |
} catch (error) { | |
console.error('Error while saving the image:', error); | |
} | |
} | |
module.exports = saveImageFromUrl; | |