diff --git a/lib/incoming_form.js b/lib/incoming_form.js index 2d357c5d..e3c8019a 100644 --- a/lib/incoming_form.js +++ b/lib/incoming_form.js @@ -356,7 +356,7 @@ IncomingForm.prototype._initMultipart = function(boundary) { var m = headerValue.match(/\bname=("([^"]*)"|([^\(\)<>@,;:\\"\/\[\]\?=\{\}\s\t/]+))/i); if (headerField == 'content-disposition') { if (m) { - part.name = m[1]; + part.name = m[2] || m[3] || ''; } part.filename = self._fileName(headerValue); @@ -426,7 +426,8 @@ IncomingForm.prototype._fileName = function(headerValue) { var m = headerValue.match(/\bfilename=("(.*?)"|([^\(\)<>@,;:\\"\/\[\]\?=\{\}\s\t/]+))($|;\s)/i); if (!m) return; - var filename = m[1].substr(m[1].lastIndexOf('\\') + 1); + var match = m[2] || m[3] || ''; + var filename = match.substr(match.lastIndexOf('\\') + 1); filename = filename.replace(/%22/g, '"'); filename = filename.replace(/&#([\d]{4});/g, function(m, code) { return String.fromCharCode(code);