From cdd613ac0f2da8e0f2546a03ee993be473b2e94c Mon Sep 17 00:00:00 2001 From: Aaron Suen Date: Mon, 9 May 2022 10:42:01 -0400 Subject: [PATCH] Force binary encoding for multipart file/buffer fields Fixes #403 --- lib/multipart.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/multipart.js b/lib/multipart.js index d1e6e1855..e988a400b 100644 --- a/lib/multipart.js +++ b/lib/multipart.js @@ -39,10 +39,10 @@ function generate_part(name, part, boundary, callback) { var return_part = '--' + boundary + '\r\n'; return_part += 'Content-Disposition: form-data; name="' + name + '"'; - function append(data, filename) { + function append(data, filename, force_binary) { if (data) { - var binary = part.content_type.indexOf('text') == -1; + var binary = force_binary || part.content_type.indexOf('text') == -1; return_part += '; filename="' + encodeURIComponent(filename) + '"\r\n'; if (binary) return_part += 'Content-Transfer-Encoding: binary\r\n'; return_part += 'Content-Type: ' + part.content_type + '\r\n\r\n'; @@ -55,11 +55,11 @@ function generate_part(name, part, boundary, callback) { if ((part.file || part.buffer) && part.content_type) { var filename = part.filename ? part.filename : part.file ? basename(part.file) : name; - if (part.buffer) return append(part.buffer, filename); + if (part.buffer) return append(part.buffer, filename, true); readFile(part.file, function(err, data) { if (err) return callback(err); - append(data, filename); + append(data, filename, true); }); } else {