From 0e239a0014146ab8f8fa112d86a11343be5196c6 Mon Sep 17 00:00:00 2001 From: yhirose Date: Sat, 14 Apr 2018 18:42:56 -0400 Subject: [PATCH] Fix #47 --- httplib.h | 5 +++-- test/test.cc | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/httplib.h b/httplib.h index 1716d0e..dbb47de 100644 --- a/httplib.h +++ b/httplib.h @@ -1026,10 +1026,11 @@ inline bool parse_multipart_formdata( static std::string crlf = "\r\n"; static std::regex re_content_type( - "Content-Type: (.*?)"); + "Content-Type: (.*?)", std::regex_constants::icase); static std::regex re_content_disposition( - "Content-Disposition: form-data; name=\"(.*?)\"(?:; filename=\"(.*?)\")?"); + "Content-Disposition: form-data; name=\"(.*?)\"(?:; filename=\"(.*?)\")?", + std::regex_constants::icase); auto dash_boundary = dash + boundary; diff --git a/test/test.cc b/test/test.cc index 815246b..53474a7 100644 --- a/test/test.cc +++ b/test/test.cc @@ -614,7 +614,7 @@ TEST_F(ServerTest, MultipartFormData) req.headers.emplace("User-Agent", "cpp-httplib/0.1"); req.headers.emplace("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundarysBREP3G013oUrLB4"); - req.body = "------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"text1\"\r\n\r\ntext default\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"text2\"\r\n\r\naωb\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"file1\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nh\ne\n\nl\nl\no\n\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"file2\"; filename=\"world.json\"\r\nContent-Type: application/json\r\n\r\n{\n \"world\", true\n}\n\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"file3\"; filename=\"\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n------WebKitFormBoundarysBREP3G013oUrLB4--\r\n"; + req.body = "------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"text1\"\r\n\r\ntext default\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"text2\"\r\n\r\naωb\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"file1\"; filename=\"hello.txt\"\r\nContent-Type: text/plain\r\n\r\nh\ne\n\nl\nl\no\n\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\nContent-Disposition: form-data; name=\"file2\"; filename=\"world.json\"\r\nContent-Type: application/json\r\n\r\n{\n \"world\", true\n}\n\r\n------WebKitFormBoundarysBREP3G013oUrLB4\r\ncontent-disposition: form-data; name=\"file3\"; filename=\"\"\r\ncontent-type: application/octet-stream\r\n\r\n\r\n------WebKitFormBoundarysBREP3G013oUrLB4--\r\n"; auto res = std::make_shared(); auto ret = cli_.send(req, *res);