!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

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
Free 13.26 GB of 57.97 GB (22.87%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     kycController.js (3.31 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
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 ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0369 ]--