From d1f3ce0957b967a99234c1d67be21c40c14762d2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 14 Aug 2022 04:01:21 +0300 Subject: [PATCH] Fix UTF-8 file name encoding for uploads (fixes #3013) --- src/routes/routes.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/routes/routes.js b/src/routes/routes.js index 3e2ade7c0..b957139fe 100644 --- a/src/routes/routes.js +++ b/src/routes/routes.js @@ -4,7 +4,14 @@ const setupRoute = require('./setup'); const loginRoute = require('./login'); const indexRoute = require('./index'); const utils = require('../services/utils'); -const multer = require('multer')(); +const multer = require('multer')({ + fileFilter: (req, file, cb) => { + // UTF-8 file names are not well decoded by multer/busboy, so we handle the conversion on our side. + // See https://github.com/expressjs/multer/pull/1102. + file.originalname = Buffer.from(file.originalname, "latin1").toString("utf-8"); + cb(null, true); + } +}); // API routes const treeApiRoute = require('./api/tree');