This commit is contained in:
@@ -2,6 +2,7 @@ const util = require("util");
|
||||
var fs = require('fs');
|
||||
var multer = require('multer');
|
||||
const path = require("path");
|
||||
const sharp = require("sharp");
|
||||
const { splitSite } = require("../middlewares");
|
||||
const dbConfig = require("../config/db.config");
|
||||
const MongoClient = require("mongodb").MongoClient;
|
||||
@@ -46,6 +47,16 @@ const resolveSignatureExt = (mimetype = '', originalName = '') => {
|
||||
return '.jpg';
|
||||
};
|
||||
|
||||
const resizeDriverSignatureBuffer = async (fileBuffer, ext = '.jpg') => {
|
||||
const pipeline = sharp(fileBuffer).resize(400, 200, {
|
||||
fit: 'fill'
|
||||
});
|
||||
if (ext === '.png') {
|
||||
return pipeline.png().toBuffer();
|
||||
}
|
||||
return pipeline.jpeg({ quality: 90 }).toBuffer();
|
||||
};
|
||||
|
||||
const findDriverSignatureFilePath = async (fileBaseName = '') => {
|
||||
const safeName = `${fileBaseName || ''}`.trim();
|
||||
if (!safeName) return null;
|
||||
@@ -162,7 +173,8 @@ const uploadFiles = async (req, res) => {
|
||||
}
|
||||
const ext = resolveSignatureExt(req.file?.mimetype, req.file?.originalname);
|
||||
const targetFilePath = path.join(targetDir, `${fileName}${ext}`);
|
||||
fs.writeFileSync(targetFilePath, req.file.buffer);
|
||||
const resizedSignature = await resizeDriverSignatureBuffer(req.file.buffer, ext);
|
||||
fs.writeFileSync(targetFilePath, resizedSignature);
|
||||
return res.send({
|
||||
message: "Driver signature has been uploaded.",
|
||||
path: targetFilePath
|
||||
|
||||
Reference in New Issue
Block a user