DashX-API / lib /uploadImage.js
HerzaJ's picture
Create lib/uploadImage.js
d741627 verified
const fetch = require('node-fetch');
const FormData = require('form-data');
module.exports = async buffer => {
try {
const { fromBuffer } = require('file-type');
let fileType = await fromBuffer(buffer);
if (!fileType) {
throw new Error('Cannot determine file type');
}
let { ext } = fileType;
const randomName = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
let bodyForm = new FormData();
bodyForm.append("fileToUpload", buffer, randomName + "." + ext);
bodyForm.append("reqtype", "fileupload");
let res = await fetch("https://cdnme.idnet.my.id/upload", {
method: "POST",
body: bodyForm,
});
if (!res.ok) {
throw new Error(`Upload failed: ${res.status} ${res.statusText}`);
}
let data = await res.json();
if (data.success && data.url) {
return data.url;
} else {
throw new Error('Upload failed: Invalid response');
}
} catch (error) {
console.error('Upload error:', error);
throw error;
}
}