Express js From files upload image ,pdf,Excel File,Wordfiles,Video files https://www.npmjs.com/package/multer MULTER package (Give all options) | | storage limit file filter | | | | | | storge=>destination,filename limit->fileSize(bytes),files,fields,fieldNameSize File Fileter->image(jpg,png),PDF,Excel,Word ,Video STEP step 1 npm install MULTER step 2 const multer =require('multer') step 3 cosnt storage =multer.diskStorage({ destination:function(req,file,cb){ cb(null,'.uploads') }, filename:function(req,file,cb){ const newFileName=Date.now() +path.extname(file.originalname) cb(null,newFileName) } }) step 4 const limits={ 1kb =1024kb fileSize:1024*1024*5 1mb=1kb*1024 }; step 5 const upload=multer({ storage:storage, limits:limits }) step 6 // for single files app.post('submitform',upload.single('imagefile'),(req,res)){ // for multifile upload.array('imagefile',5) for multiple file and cv also upload.fields([{ name:'profilePc',maxCount:1 },{name:'documents',maxCount:3} ]) res.send(req.file) } ==>starting lab NOTE: Multer will not process any form which is not multipart (multipart/form-data). https://www.npmjs.com/package/multer instal node npm instal ejs const express = require('express') const app = express() app.use(express.urlencoded({ extended:false})) app.use(express.json) app.set('view engine','ejs'); app.get('/',(req,res)=>{ res.render('myfrom') }) app.listen(port=3000, () => { console.log(`Example app listening on port ${port}`) }) npm i multer files app.js const express = require('express') const app = express() const multer=require('multer') const path=require('path') app.use(express.urlencoded({ extended:false})) app.use(express.json()) app.set('view engine','ejs'); const storage=multer.diskStorage({ destination:(req,file,cb)=>{ cb(null,'./uploads') }, filename:(req,file,cb)=>{ const newFilename=Date.now() + path.extname(file.originalname) cb(null,newFilename) } }) const upload=multer({ storage :storage, limits:{ fileSize:1024*1024*3, } }) app.get('/',(req,res)=>{ res.render('myform') }) //middleware app.post('/submitform',upload.single('userfile'),(req,res)=>{ res.send(req.file) // res.send(req.file.filename) // specfice filed print onlu }) app.listen(port=3000, () => { console.log(`Example app listening on port ${port}`) }) file app.js using files fileFilter const fileFilter=(req,file,cb)=>{ if(file.mimetype.startsWith('image/')){ cb(null,true) }else{ cb(new Error('Only image arre allowed !'),false) } } const upload=multer({ storage :storage, limits:{ fileSize:1024*1024*3, }, fileFilter:fileFilter }) app.get('/',(req,res)=>{ res.render('myform') }) aap.js Error multer //app.post('/submitform',upload.single('userfile'),(req,res)=>{}) // single file app.post('/submitform',upload.array('userfile', 3),(req,res)=>{ // multifies file //error handler if(!req.files || req.files.length===0){ return res.status(400).send(`No file uploaded.`) } //res.send(req.file) //res.send(req.file.filename) // specfice filed print only res.send(req.files) // alliled print only /* error handing method 1 },(error,req,res,next)=>{ if(error instanceof multer.MulterError){ return res.status(400).send(`Multer error : ${error.message}`) } else if(error){ return res.status(500).send(`Somthing went wrong : ${error}`) } */ }) // or way error method 2 app.use((error,req,res,next)=>{ if(error instanceof multer.MulterError){ return res.status(400).send(`Multer error : ${error.message}`) } else if(error){ return res.status(500).send(`Somthing went wrong : ${error}`) } next() }) myform.js <form action="/submitform" method="POST" enctype="multipart/form-data"> <div class="row mb-3"> <label for="col-sm-2 col=form-lable text-end">User Name:</label> <div class="col-sm-3"> <input type="text" name="username" class="form-control"> </div> </div> <div class="row mb-3"> <label for="col-sm-2 col=form-lable text-end">User FILE :</label> <div class="col-sm-3"> <!-- <input type="file" name="userfile" class="form-control"> --> <input type="file" multiple="multipart" name="userfile" class="form-control"> </div> </div> <br> <div class="row"> <div class="col-sm-2 offset-sm-2"> <input type="submit" class="btn btn-primary"> </div> </div> </div> </form>
June-06-2025 21:23:08
June-06-2025 11:35:05
June-06-2025 08:25:42
June-02-2025 21:09:41
June-02-2025 10:56:22
June-02-2025 10:27:58
June-02-2025 10:15:40
May-30-2025 19:20:40
May-30-2025 19:14:29
May-27-2025 21:52:18
May-27-2025 21:33:30
May-26-2025 17:11:41
May-26-2025 16:53:29
May-26-2025 16:50:59
May-13-2025 21:02:32
May-13-2025 17:46:23
May-12-2025 15:41:29