Uname: Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
Software: LiteSpeed
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.213.251.212
Your Ip: 18.117.100.86
User: allssztx (535) | Group: allssztx (533)
Safe Mode: OFF
Disable Function:
NONE

name : upload.js
const express = require('express');
const router = express.Router();
const multer = require("multer");
const fs = require('fs');
const path = require('path');

const imageStorage = multer.diskStorage({
    destination: function (req, file, cb) {
        const dir = './public/media/photos';
        const fullPath = path.resolve(dir);
        console.log(fullPath)
        if (!fs.existsSync(dir)) {
            fs.mkdirSync(dir);
        }
        cb(null, fullPath);
    },
    filename: function (req, file, cb) {
        cb(null, "file-" + Date.now() + '.' + file.originalname.split('.')[1]);
    }
});

const audioStorage = multer.diskStorage({
    destination: function (req, file, cb) {
        const dir = './public/media/audios';
        const fullPath = path.resolve(dir);
        console.log(fullPath)
        if (!fs.existsSync(dir)) {
            fs.mkdirSync(dir);
        }
        cb(null, fullPath);
    },
    filename: function (req, file, cb) {
        cb(null, "file-" + Date.now() + '.' + file.originalname.split('.')[1]);
    }
});

const imageFilter = (req, file, cb) => {
    // only image files
    if (file.mimetype.toLowerCase() === "image/jpeg" || file.mimetype.toLowerCase() === "image/png") {
        cb(null, true);
    } else {
        cb(null, false);
    }
};

const audioFilter = (req, file, cb) => {
    // only audio files
    const supportedAudioTypes = [
        "audio/mpeg",     // MP3
        "audio/mp3",      // MP3
        "audio/wav",      // WAV
        "audio/x-wav",    // WAV
        "audio/flac",     // FLAC
        "audio/aac",      // AAC
        "audio/mp4",      // AAC
        "audio/x-m4a",    // AAC
    ];
    if (supportedAudioTypes.includes(file.mimetype.toLowerCase())) {
        cb(null, true);
    } else {
        cb(null, false);
    }
};

const uploadImage = multer({ storage: imageStorage, fileFilter: imageFilter });

const uploadAudio = multer({ storage: audioStorage, fileFilter: audioFilter });

router.post('/', uploadImage.single('image'), async (req, res) => {
    try {
        const image = req.file;
        console.log('req.file', req.file)
        if (!image) {
            return res.status(400).json({ error: 'Please upload a Valid Image of jpg/png' });
        }
        res.send(image);
    }
    catch (err) {
        console.log(err.message);
        return res.status(500).json({
            error: err.message
        })
    }
})

router.post('/audio', uploadAudio.single('audio'), async (req, res) => {
    try {
        const audio = req.file;
        console.log('req.file', req.file)
        if (!audio) {
            return res.status(400).json({ error: 'Please upload a Valid Audio of mpeg/mp3/wav/x-wav/flac/aac/mp4/x-m4a' });
        }
        res.send(audio);
    }
    catch (err) {
        console.log(err.message);
        return res.status(500).json({
            error: err.message
        })
    }
})

module.exports = router
© 2025 GrazzMean-Shell