From d4f4d85492040a8ac5dbecfa0afff6af5e3d2322 Mon Sep 17 00:00:00 2001 From: Timothy Carambat Date: Tue, 12 Dec 2023 16:07:23 -0800 Subject: [PATCH] patch: fix non-latin filenames being encoded improperly during upload and chat (#432) patch: fix non-latin filenames being messed up during upload and chat connect #169 resolves #427 --- server/utils/files/multer.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/server/utils/files/multer.js b/server/utils/files/multer.js index 9c2967e0..b0a595b7 100644 --- a/server/utils/files/multer.js +++ b/server/utils/files/multer.js @@ -6,7 +6,7 @@ const { v4 } = require("uuid"); function setupMulter() { // Handle File uploads for auto-uploading. const storage = multer.diskStorage({ - destination: function (_, _, cb) { + destination: function (_, __, cb) { const uploadOutput = process.env.NODE_ENV === "development" ? path.resolve(__dirname, `../../../collector/hotdir`) @@ -14,6 +14,9 @@ function setupMulter() { cb(null, uploadOutput); }, filename: function (_, file, cb) { + file.originalname = Buffer.from(file.originalname, "latin1").toString( + "utf8" + ); cb(null, file.originalname); }, }); @@ -24,7 +27,7 @@ function setupMulter() { function setupDataImports() { // Handle File uploads for auto-uploading. const storage = multer.diskStorage({ - destination: function (_, _, cb) { + destination: function (_, __, cb) { const uploadOutput = path.resolve(__dirname, `../../storage/imports`); fs.mkdirSync(uploadOutput, { recursive: true }); return cb(null, uploadOutput); @@ -40,7 +43,7 @@ function setupDataImports() { function setupLogoUploads() { // Handle Logo uploads. const storage = multer.diskStorage({ - destination: function (_, _, cb) { + destination: function (_, __, cb) { const uploadOutput = process.env.NODE_ENV === "development" ? path.resolve(__dirname, `../../storage/assets`) @@ -49,6 +52,9 @@ function setupLogoUploads() { return cb(null, uploadOutput); }, filename: function (_, file, cb) { + file.originalname = Buffer.from(file.originalname, "latin1").toString( + "utf8" + ); cb(null, file.originalname); }, }); @@ -58,7 +64,7 @@ function setupLogoUploads() { function setupPfpUploads() { const storage = multer.diskStorage({ - destination: function (_, _, cb) { + destination: function (_, __, cb) { const uploadOutput = process.env.NODE_ENV === "development" ? path.resolve(__dirname, `../../storage/assets/pfp`)