From 1588c9040b1d1aa0046ffb0a11f29f4c9d8a19bb Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Thu, 5 Dec 2024 14:39:46 +0800 Subject: [PATCH 1/2] fix: only set extend notation on non-ascii filename --- src/FormData.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/FormData.ts b/src/FormData.ts index 78b54a8f..92a9cfde 100644 --- a/src/FormData.ts +++ b/src/FormData.ts @@ -1,6 +1,9 @@ import path from 'node:path'; import _FormData from 'form-data'; +// eslint-disable-next-line +const ASCII_RE = /[^\x00-\x7F]/i; + export class FormData extends _FormData { _getContentDisposition(value: any, options: any) { // support non-ascii filename @@ -24,7 +27,10 @@ export class FormData extends _FormData { if (filename) { // https://datatracker.ietf.org/doc/html/rfc6266#section-4.1 // support non-ascii filename - contentDisposition = 'filename="' + filename + '"; filename*=UTF-8\'\'' + encodeURIComponent(filename); + contentDisposition = 'filename="' + filename + '"'; + if (ASCII_RE.test(filename)) { + contentDisposition += '; filename*=UTF-8\'\'' + encodeURIComponent(filename); + } } return contentDisposition; From 06b425202819813a1b988575e61d5646b93b5dcf Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Thu, 5 Dec 2024 14:42:11 +0800 Subject: [PATCH 2/2] f --- src/FormData.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/FormData.ts b/src/FormData.ts index 92a9cfde..3f8d7f3e 100644 --- a/src/FormData.ts +++ b/src/FormData.ts @@ -2,7 +2,7 @@ import path from 'node:path'; import _FormData from 'form-data'; // eslint-disable-next-line -const ASCII_RE = /[^\x00-\x7F]/i; +const NON_ASCII_RE = /[^\x00-\x7F]/i; export class FormData extends _FormData { _getContentDisposition(value: any, options: any) { @@ -28,7 +28,7 @@ export class FormData extends _FormData { // https://datatracker.ietf.org/doc/html/rfc6266#section-4.1 // support non-ascii filename contentDisposition = 'filename="' + filename + '"'; - if (ASCII_RE.test(filename)) { + if (NON_ASCII_RE.test(filename)) { contentDisposition += '; filename*=UTF-8\'\'' + encodeURIComponent(filename); } }