@@ -43,6 +43,26 @@ MDNSResponder mdns;
43
43
ESP8266WebServer server (80 );
44
44
45
45
static bool hasSD = false ;
46
+ File uploadFile;
47
+
48
+ void handleFileUpload (){
49
+ if (server.uri () != " /upload" ) return ;
50
+ HTTPUpload upload = server.upload ();
51
+ if (upload.status == UPLOAD_FILE_START){
52
+ Serial.print (" Upload: START, filename:" );
53
+ Serial.println (upload.filename );
54
+ if (SD.exists ((char *)upload.filename .c_str ())) SD.remove ((char *)upload.filename .c_str ());
55
+ uploadFile = SD.open (upload.filename .c_str (), FILE_WRITE);
56
+ } else if (upload.status == UPLOAD_FILE_WRITE){
57
+ Serial.print (" Upload: WRITE, Bytes:" );
58
+ Serial.println (upload.buflen );
59
+ if (uploadFile) uploadFile.write (upload.buf , upload.buflen );
60
+ } else if (upload.status == UPLOAD_FILE_END){
61
+ Serial.print (" Upload: END, Size:" );
62
+ Serial.println (upload.size );
63
+ if (uploadFile) uploadFile.close ();
64
+ }
65
+ }
46
66
47
67
bool loadFromSdCard (String path){
48
68
String dataType = " text/plain" ;
@@ -152,6 +172,19 @@ void setup(void){
152
172
// Attach handler
153
173
server.onNotFound (tryLoadFromSdCard);
154
174
175
+ // Attach Upload handler
176
+ server.onFileUpload (handleFileUpload);
177
+
178
+ // Attach handler for the Upload location
179
+ server.on (" /upload" , HTTP_POST, [](){
180
+ WiFiClient client = server.client ();
181
+ String message = " HTTP/1.1 200 OK\r\n " ;
182
+ message += " Content-Type: text/plain\r\n " ;
183
+ message += " Access-Control-Allow-Origin: *\r\n " ;
184
+ message += " \r\n " ;
185
+ client.print (message);
186
+ });
187
+
155
188
// start server
156
189
server.begin ();
157
190
Serial.println (" HTTP server started" );
0 commit comments