From e3681a4a9b63439dc00d804f9bddc14d574c00b5 Mon Sep 17 00:00:00 2001 From: Rickey Ward Date: Sun, 16 Sep 2018 13:33:09 -0400 Subject: [PATCH 1/2] Added naive content length to upload struct content length provides context into the size of the upload, it's not the exact form body size it's off by the request header info, but it was already parsed by the library and provides little to no additional overhead to pass on for use in request handlers. --- libraries/ESP8266WebServer/src/ESP8266WebServer.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.h b/libraries/ESP8266WebServer/src/ESP8266WebServer.h index 0bfa302a4c..dcd22695c0 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.h +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.h @@ -55,8 +55,9 @@ typedef struct { String filename; String name; String type; - size_t totalSize; // file size + size_t totalSize; // total size of uploaded file so far size_t currentSize; // size of data currently in buf + size_t contentLength; // size of entire post request, file size + headers and other request data. uint8_t buf[HTTP_UPLOAD_BUFLEN]; } HTTPUpload; From 0c8e3a3c2558071047337dcc487af328abe1129f Mon Sep 17 00:00:00 2001 From: Rickey Ward Date: Sun, 16 Sep 2018 14:09:31 -0400 Subject: [PATCH 2/2] Assinged content length on creation of HTTPUpload --- libraries/ESP8266WebServer/src/Parsing.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/ESP8266WebServer/src/Parsing.cpp b/libraries/ESP8266WebServer/src/Parsing.cpp index 25bf6acec0..491625cb76 100644 --- a/libraries/ESP8266WebServer/src/Parsing.cpp +++ b/libraries/ESP8266WebServer/src/Parsing.cpp @@ -463,6 +463,7 @@ bool ESP8266WebServer::_parseForm(WiFiClient& client, String boundary, uint32_t _currentUpload->type = argType; _currentUpload->totalSize = 0; _currentUpload->currentSize = 0; + _currentUpload->contentLength = len; #ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("Start File: "); DEBUG_OUTPUT.print(_currentUpload->filename);