From 891c4fcefcb8469205cb61575ba536f9b8889527 Mon Sep 17 00:00:00 2001 From: Rumyantsev Alexey Date: Thu, 30 Nov 2017 16:01:28 +0800 Subject: [PATCH] Added correct parsing of "Content-Type" in multipart/form-data file uploads --- library/parser.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/library/parser.cpp b/library/parser.cpp index 3f3ca2c..0222ac4 100644 --- a/library/parser.cpp +++ b/library/parser.cpp @@ -144,6 +144,7 @@ static const std::string MINUS_PREFIX_STRING = "--"; static const std::string NAME_STRING = "name"; static const std::string FILENAME_STRING = "filename"; static const std::string CONTENT_TYPE_STRING = "CONTENT_TYPE"; +static const std::string CONTENT_TYPE_HEADER = "Content-Type"; void Parser::parseLine(DataBuffer line, DataBuffer &name, DataBuffer &filename, DataBuffer &type) { @@ -160,6 +161,13 @@ Parser::parseLine(DataBuffer line, DataBuffer &name, DataBuffer &filename, DataB else if (CONTENT_TYPE_STRING.size() == key.size() && key.startsWithCI(CONTENT_TYPE_STRING)) { type = value.trim(); } + else { + head.split(':', key, value); + + if (CONTENT_TYPE_HEADER.size() == key.size() && key.startsWith(CONTENT_TYPE_HEADER)) { + type = value.trim(); + } + } line = tail.trim(); } }