20 #include "../../../include/esp3d_config.h"
21 #if defined (HTTP_FEATURE) && defined(SD_DEVICE)
22 #include "../http_server.h"
23 #if defined (ARDUINO_ARCH_ESP32)
24 #include <WebServer.h>
25 #endif //ARDUINO_ARCH_ESP32
26 #if defined (ARDUINO_ARCH_ESP8266)
27 #include <ESP8266WebServer.h>
28 #endif //ARDUINO_ARCH_ESP8266
29 #include "../../filesystem/esp_sd.h"
30 #include "../../authentication/authentication_service.h"
32 void HTTP_Server::SDFileupload ()
36 static String filename;
38 static uint32_t timecheck;
44 HTTPUpload& upload = _webserver->upload();
45 String upload_filename = upload.filename;
49 if (upload.status == UPLOAD_FILE_START) {
52 if (upload_filename[0] !=
'/') {
53 filename =
"/" + upload_filename;
55 filename = upload.filename;
61 if (fsUploadFile.
isOpen() ) {
64 String sizeargname = upload.filename +
"S";
70 if (_webserver->hasArg (sizeargname.c_str()) ) {
72 size_t filesize = _webserver->arg (sizeargname.c_str()).toInt();
73 if (freespace < filesize ) {
94 }
else if(upload.status == UPLOAD_FILE_WRITE) {
98 if(upload.currentSize != fsUploadFile.
write(upload.buf, upload.currentSize)) {
109 }
else if(upload.status == UPLOAD_FILE_END) {
110 uint32_t filesize = 0;
114 fsUploadFile.
close();
116 String sizeargname = upload.filename +
"S";
118 filesize = fsUploadFile.
size();
120 if (_webserver->hasArg (sizeargname.c_str()) ) {
121 if (_webserver->arg (sizeargname.c_str()) != String(filesize)) {
134 Serial.print(filesize);
135 Serial.print(
" B in ");
136 Serial.print((millis()-timecheck) / 1000);
137 Serial.println(
" sec");
150 fsUploadFile.
close();
159 #endif //HTTP_FEATURE && SD_DEVICE