Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/aws_s3/src/controllers/ drwxr-xr-x | |
| Viewing file: Select action/file-type: import sharp from "sharp";
import ShortUniqueId from "short-unique-id";
// import { uploadImageToS3, deleteImagesFromS3 } from "../models/imageModel.js";
import { uploadToS3, deleteFolderFromS3 } from "../models/imageModel.js";
import path from "path";
const uid = new ShortUniqueId({ length: 10 });
// Upload Multiple KYC Images
export const uploadKYCImages = async (req, res) => {
try {
if (!req.files || req.files.length === 0 || !req.body.vendor) {
// return res.status(400).json({ error: "true", message: "No images selected" });
res.locals.data={"error":"true","message":"Missing required fields"};
res.status(400).json(res.locals.data);
}
// if (!req.body.vendor) {
// return res.status(400).json({ error: "true", message: "Vendor is required" });
// }
const folder = `${req.body.vendor}/kyc`;
// Delete existing images first
await deleteFolderFromS3(folder);
let fileLocations = [];
await Promise.all(req.files.map(async (file) => {
let fileName = `${folder}/${uid()}.webp`;
let resizedImage = await sharp(file.buffer).webp({ quality: 75 }).toBuffer();
let uploadResponse = await uploadToS3(resizedImage, fileName);
if (uploadResponse === "error") {
res.locals.data={"error":"true","message":"KYC upload failed"};
res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
// throw new Error("Image upload failed");
}
var file_name = path.basename(fileName);
fileLocations.push([ file.originalname.split(".")[0],file_name ]);
}));
res.locals.data={ data: fileLocations };
res.status(200).json({ data: fileLocations });
} catch (error) {
res.locals.data={"error":"true","message":error.message};
res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
}
};
// Upload Profile Image
export const uploadProfileImage = async (req, res) => {
try {
if (!req.file) {
return res.status(400).json({ error: "true", message: "No image selected" });
}
if (!req.body.vendor) {
return res.status(400).json({ error: "true", message: "Vendor is required" });
}
const folder = `${req.body.vendor}/profile`;
// await deleteFolderFromS3(folder);
if (!req.body.profile) {
var fileName = `${folder}/${uid()}.webp`;
}else{
var fileName = `${folder}/${req.body.profile}`;
}
let resizedImage = await sharp(req.file.buffer).webp({ quality: 75 }).toBuffer();
let uploadResponse = await uploadToS3(resizedImage, fileName);
console.log(uploadResponse.message);
if (uploadResponse.error) {
res.locals.data={"error":"true","message":uploadResponse.message};
res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
// throw new Error("Profile image upload failed");
}else{
var file_name = path.basename(fileName);
res.locals.data={"message":"Vendor profile uploaded"};
res.status(200).json({ data: file_name });
}
} catch (error) {
console.log("try");
res.locals.data={"error":"true","message":error.message};
res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
}
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0369 ]-- |