const multer = require('multer'); const path = require('path'); var imageStorage = multer.diskStorage({ // Destination to store image // destination: 'assets/images/'+pathDir, destination: (req, file, cb) => { // console.log(req.get("path")); // let pathdir = req.get("path"); cb(null, "assets/bast/pdf/") // cb(null, "assets/words/" + pathdir + "/") }, filename : (req, file, cb) => { // let filename=file.originalname.split(".")[0]; let nik = req.nik; let filedoc = 'bast_'+nik+'_' + Date.now() + path.extname(file.originalname); // req.body.filedoc = filedoc; // cb(null, filedoc); req.body.filename = filedoc; cb(null, filedoc); // file.fieldname is name of the field (image) // path.extname get the uploaded file extension } }); var imageUpload = multer({ storage: imageStorage, limits: { fileSize: '5mb' // 1000000 Bytes = 5 MB }, fileFilter(req, file, cb) { // if (!file.originalname.match(/\.(png|jpg|pdf)$/)) { // if (!file.originalname.match(/\.(docx|pdf)$/)) { if (!file.originalname.match(/\.(pdf)$/)) { // upload only png and jpg format req.fileValidationError = "Please upload a word document in ( docx ) max 5 mb"; cb(new Error('Please upload a word document in ( docx ) max 5 mb'), false); } else{ cb(null, true); } } }).single("file-doc"); module.exports = (req, res, next) => { try { imageUpload(req,res, function(err){ try { // if (err || err instanceof multer.MulterError){ if (err){ res.status(500).send({ "meta":{ "auth": false, "code" : 500, "message" : req.fileValidationError || err.toString(), }, "data" :[] }); } else { next(); // console.log('The filename is ' + res.req.file.filename); } } catch (error) { console.log("error "+error); } }); } catch (error) { console.log("error " + error); error.message = error.message; error.statusCode = 500; throw error; } }