39 lines
1.0 KiB
JavaScript
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 };
|