myshenin / aws-lambda-multipart-parser

Parser of multipart/form-data requests for AWS Lambda
MIT License
74 stars 38 forks source link

Does not support multi line form values #13

Open lbittner-pdftron opened 6 years ago

lbittner-pdftron commented 6 years ago

Issue

When submitting a form with a multiline value such as:

Test line one,

Test Line Two

Anything after 'Test line one' gets removed.

After some debugging I figured out that this code (line 50 as of now):

.split(/\r\n\r\n/)[1]

is the issue. The input of the sample text above looks like so:

\r\n\r\nTest line one,\r\n\r\nTest Line Two\r\n

And the split() call is only taking the first element in the array, which is Test line one,.

Quick solution

For now, I just changed that line to this:

.split(/\r\n\r\n/).slice(1).join("\r\n")

Keep in mind that this changes any amount of new lines to a single new line. I don't have time to create a PR, but you could do something similar to support multi line inputs.

tmadej commented 6 years ago

I'm experiencing the same issue.

Adding the quick solution above to line 50 seem to have resolved it. I suspect that line 38 requires a similar fix.

sergolius commented 6 years ago

Merge request on review @lbittner-pdftron , @tmadej check https://github.com/sergolius/aws-lambda-multipart-parser

zcmgyu commented 5 years ago

@sergolius Thanks. Your fork works for me