now gets body reliably
This commit is contained in:
parent
14805bdad4
commit
48a5f724c8
1 changed files with 34 additions and 3 deletions
37
main.cpp
37
main.cpp
|
@ -164,14 +164,45 @@ int main()
|
||||||
}
|
}
|
||||||
else if (head[0] == "POST")
|
else if (head[0] == "POST")
|
||||||
{
|
{
|
||||||
|
int state = 0;
|
||||||
|
std::string boundary;
|
||||||
|
size_t file_size = 0;
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
char *line = server.get_line(user);
|
char *line = server.get_line(user);
|
||||||
if (line)
|
if (line)
|
||||||
{
|
{
|
||||||
std::string str = std::string(line);
|
if (state == 0)
|
||||||
auto head = parse_header(str);
|
{
|
||||||
print_map(head);
|
std::string line_str = std::string(line);
|
||||||
|
auto h = parse_header(line_str);
|
||||||
|
|
||||||
|
if (h.contains("Content-Type:"))
|
||||||
|
{
|
||||||
|
print_map(h);
|
||||||
|
std::vector<std::string> a = split(h["Content-Type:"], "; ");
|
||||||
|
boundary = a[1];
|
||||||
|
boundary.substr(strlen("boundary="), boundary.size() - strlen("boundary=") - 2);
|
||||||
|
std::println("{}", boundary);
|
||||||
|
}
|
||||||
|
if (h.contains("Content-Length:"))
|
||||||
|
{
|
||||||
|
file_size = atoi(h["Content-Length:"].c_str());
|
||||||
|
}
|
||||||
|
if (line_str.contains(boundary) && boundary.contains("----"))
|
||||||
|
{
|
||||||
|
state = 1;
|
||||||
|
std::println("Changed state");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (state == 1)
|
||||||
|
{
|
||||||
|
char *file_data = server.receive_data_ensured(user, file_size);
|
||||||
|
if (file_data)
|
||||||
|
{
|
||||||
|
std::println("{}", file_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue