!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_new.js (7.36 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 } 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;
let bucket="jiffp";

router.get('/', function(req, res, next) {
  res.send("hello kyc 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 () => {
        try {
            // const data = await s3Client.deleteObject(bucketParams);
            const listCommand = new ListObjectsV2Command(bucketParams);
            let list = await s3Client.send(listCommand);
            console.log(list.KeyCount);
            if (list.KeyCount) { // if items to delete
                // delete the files
                var deleteCommand = new DeleteObjectsCommand({
                    Bucket: bucket,
                    Delete: {
                        Objects:[ list.Contents.map((item) => ({ Key: item.Key }))], // array of keys to be deleted
                        Quiet: false, // provides info on successful deletes
                    },
                });
                console.log(deleteCommand);

                // let deleted = await s3Client.send(deleteCommand); // delete the files

                // // log any errors deleting files
                // if (deleted.Errors) {
                //     deleted.Errors.map((error) => console.log(`${error.Key} could not be deleted - ${error.Code}`));
                // }
                // console.log(`${deleted.Deleted.length} files deleted.`);
                return "deleted";
            }else{
                return "done";
            }
        } catch (err) {
            console.log("Error", err.message);
            return err.message;
        }
    };
    router.post("/delete",upload.array('images',4), async (req, res, next) => {
        await delete_image();
        res.send("hello world");
    });
    router.post("/kyc",upload.array('images',4), async (req, res, next) => {
        try {
            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,
                };
                delete_image().then( function (params) {
                    // 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{
                    //         console.log(file_location);
                    //         res.locals.data=file_location;
                    //         res.status(200).send({"data":file_location}); 
                    //     }
                    // });
                    console.log(params);
                    res.locals.data=file_location;
                    res.status(200).send({"data":file_location}); 
                });

            }
        } catch (err) {
            res.locals.data=err.message;
            res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
        }
        
    });
    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.locals.data=re;
                    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.0055 ]--