mirror of
https://github.com/screentinker/screentinker.git
synced 2026-05-15 07:32:23 -06:00
Fix UTF-8 encoding for special characters in filenames
multer/busboy decode multipart filename headers as latin1 by default, which mangled umlauts and other non-ASCII characters end-to-end (Größe.jpg arrived as Größe.jpg and was stored that way). Setting defParamCharset: 'utf8' on the multer options makes the entire upload pipeline consistent UTF-8. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
fcecf805ed
commit
76a0076b65
|
|
@ -26,10 +26,14 @@ const fileFilter = (req, file, cb) => {
|
|||
}
|
||||
};
|
||||
|
||||
// `defParamCharset: 'utf8'` makes busboy decode multipart filename headers as UTF-8.
|
||||
// Default is latin1, which mangles umlauts and other non-ASCII characters
|
||||
// (e.g. "Größe.jpg" arrives as "Größe.jpg" and gets stored that way).
|
||||
const upload = multer({
|
||||
storage,
|
||||
fileFilter,
|
||||
limits: { fileSize: config.maxFileSize }
|
||||
limits: { fileSize: config.maxFileSize },
|
||||
defParamCharset: 'utf8'
|
||||
});
|
||||
|
||||
module.exports = upload;
|
||||
|
|
|
|||
Loading…
Reference in a new issue