Submitted May 13, 2019 at 12:05PM by techstackng
Monday, 13 May 2019
Multiple image fields upload with Multer
I have a product form that has two image fields, I named the first "Featured" and the other "second".I am trying to use multer to upload the images. I have followed the documentation https://www.npmjs.com/package/multer. I am using "express-validator" to validate and sanitize the fields. Both "multer" and "express-validator" are middleware. The "router.post('/addproduct) is responsible for uploading.This is my admin routervar express = require('express'); var router = express.Router(); var adminControllers = require('../controllers/adminControllers'); const { check } = require('express-validator/check'); const multer = require('multer'); const multerConfig = multer({ dest: 'images/products' }); /* GET Admin Page */ router.get('/', adminControllers.index); /* GET Category Page */ router.get('/category', adminControllers.createCategory); /* post category, validate inputs fields*/ router.post('/category',[ check('categoryname').not().isEmpty().trim().escape(), check('description').not().isEmpty().trim().escape() ], adminControllers.postCategory); router.get('/addproduct', adminControllers.addProductPage); var productImageUpload = multerConfig.fields([ { name: 'featured'}, { name: 'second'}]); router.post('/addproduct', [ check('name').not().isEmpty().trim().escape(), check('category').not().isEmpty().trim().escape(), check('description').not().isEmpty().trim().escape(), check('featured').not().isEmpty(), check('second').not().isEmpty(), check('price').not().isEmpty().trim().escape(), check('quantity').not().isEmpty().trim().escape(), check('weight').not().isEmpty().trim().escape() ], productImageUpload, adminControllers.addProduct); This is "add product controller"exports.addProduct = function(req, res, next) { var errors = validationResult(req); if(!errors.isEmpty()){ req.session.errors = errors; req.session.success = false; console.log('express-validator', errors); return res.redirect('/admin/addproduct'); } req.session.success = true; var url = slug(req.body.name); var Adminuser = "bob"; knex('products').insert({ product_name: req.body.name, product_category: req.body.category, description: req.body.description, image: req.files.originalname, second_image: req.files.originalname, price: req.body.price, quantity: req.body.quantity, weight: req.body.weight, url: url, users: Adminuser }).then(()=>{ console.log(req.file.featured.originalname); res.render('administration/admin'); }) } This is the addproduct.hbs
Can someone please help me figure out what I am doing wrongThanks
Submitted May 13, 2019 at 12:05PM by techstackng
Submitted May 13, 2019 at 12:05PM by techstackng
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment