From 63d092f5c891d5a4cd1786bba955cd26cfa87111 Mon Sep 17 00:00:00 2001 From: Lixian Zhou Date: Thu, 12 Mar 2026 18:46:04 -0400 Subject: [PATCH] fix --- app/controllers/upload.controller.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/app/controllers/upload.controller.js b/app/controllers/upload.controller.js index 2f70570..55b55f8 100644 --- a/app/controllers/upload.controller.js +++ b/app/controllers/upload.controller.js @@ -2,6 +2,7 @@ const util = require("util"); var fs = require('fs'); var multer = require('multer'); const path = require("path"); +const { splitSite } = require("../middlewares"); const dbConfig = require("../config/db.config"); const MongoClient = require("mongodb").MongoClient; const mongoClient = new MongoClient(dbConfig.url); @@ -30,6 +31,12 @@ const getDriverSignatureYear = (req) => { return `${new Date().getFullYear()}`; }; +const getDriverSignatureSiteYearFolder = (req) => { + const year = getDriverSignatureYear(req); + const site = splitSite.findSiteNumber(req); + return `site${site}_${year}`; +}; + const resolveSignatureExt = (mimetype = '', originalName = '') => { const safeMimetype = `${mimetype || ''}`.toLowerCase(); if (safeMimetype.includes('png')) return '.png'; @@ -45,13 +52,15 @@ const findDriverSignatureFilePath = async (fileBaseName = '') => { if (!fs.existsSync(DRIVER_SIGNATURE_DIR)) return null; const yearFolders = await readdir(DRIVER_SIGNATURE_DIR, { withFileTypes: true }); - const yearDirs = yearFolders.filter((entry) => entry.isDirectory()).map((entry) => path.join(DRIVER_SIGNATURE_DIR, entry.name)); - for (const yearDir of yearDirs) { + const siteYearDirs = yearFolders + .filter((entry) => entry.isDirectory() && /^site\d+_\d{4}$/.test(entry.name)) + .map((entry) => path.join(DRIVER_SIGNATURE_DIR, entry.name)); + for (const siteYearDir of siteYearDirs) { const candidates = [ - path.join(yearDir, safeName), - path.join(yearDir, `${safeName}.jpg`), - path.join(yearDir, `${safeName}.jpeg`), - path.join(yearDir, `${safeName}.png`) + path.join(siteYearDir, safeName), + path.join(siteYearDir, `${safeName}.jpg`), + path.join(siteYearDir, `${safeName}.jpeg`), + path.join(siteYearDir, `${safeName}.png`) ]; for (const candidate of candidates) { if (fs.existsSync(candidate)) { @@ -146,8 +155,8 @@ const uploadFiles = async (req, res) => { if (!req.file) { return res.status(400).send({ message: "You must select a file." }); } - const year = getDriverSignatureYear(req); - const targetDir = path.join(DRIVER_SIGNATURE_DIR, year); + const siteYearFolder = getDriverSignatureSiteYearFolder(req); + const targetDir = path.join(DRIVER_SIGNATURE_DIR, siteYearFolder); if (!fs.existsSync(targetDir)) { fs.mkdirSync(targetDir, { recursive: true }); }