agmission/Development/server/middlewares/multer.js

39 lines
1.0 KiB
JavaScript

const multer = require('multer');
const path = require('path');
const env = require('../helpers/env');
const fileHelper = require('../helpers/file_helper');
const storage = multer.diskStorage({
//multers disk storage settings
destination: function (req, file, cb) {
cb(null, env.INV_UPLOAD_DIR);
},
filename: function (req, file, cb) {
var datetimestamp = Date.now();
cb(
null,
file.fieldname +
'-' +
datetimestamp +
'.' +
file.originalname.split('.')[file.originalname.split('.').length - 1]
);
},
});
const invoiceSettingsUpload = multer({
storage: storage,
fileFilter: function (req, file, callback) {
const ext = path.extname(file.originalname);
if (!['.png', '.jpg', '.jpeg'].includes(ext.toLowerCase())) {
return callback(new multer.MulterError('Only images are allowed'));
}
callback(null, true);
},
limits: {
fileSize: env.INV_MAX_UPLOAD_SIZE_MB * 1024 * 1024,
},
});
module.exports = { invoiceSettingsUpload };