@@ -171,13 +171,17 @@ static void putFile(AsyncWebServerRequest *request, uint8_t *data, size_t len, s
171171{
172172 static File file;
173173 static size_t bytes;
174- if (!file || request->url () != file.name ()) {
174+ if (!file ||
175+ // Request URI starts with a / and LittleFS File::name() does not include it, ESP32 doesn't have File::fullName()
176+ strcmp (&request->url ().c_str ()[1 ], file.name ()) != 0 )
177+ {
175178 file = LittleFS.open (request->url (), " w" );
176179 bytes = 0 ;
177180 }
178181 file.write (data, len);
179182 bytes += len;
180- if (bytes == total) {
183+ if (bytes == total)
184+ {
181185 file.close ();
182186 }
183187}
@@ -204,18 +208,18 @@ static void HandleReboot(AsyncWebServerRequest *request)
204208static void HandleReset (AsyncWebServerRequest *request)
205209{
206210 if (request->hasArg (" hardware" )) {
207- LittleFS.remove (" hardware.json" );
211+ LittleFS.remove (" / hardware.json" );
208212 }
209213 if (request->hasArg (" options" )) {
210- LittleFS.remove (" options.json" );
214+ LittleFS.remove (" / options.json" );
211215#if defined(TARGET_RX)
212216 config.SetModelId (255 );
213217 config.SetForceTlmOff (false );
214218 config.Commit ();
215219#endif
216220 }
217221 if (request->hasArg (" lr1121" )) {
218- LittleFS.remove (" lr1121.txt" );
222+ LittleFS.remove (" / lr1121.txt" );
219223 }
220224 if (request->hasArg (" model" ) || request->hasArg (" config" )) {
221225 config.SetDefaults (true );
@@ -233,7 +237,7 @@ static void UpdateSettings(AsyncWebServerRequest *request, JsonVariant &json)
233237 return ;
234238 }
235239
236- File file = LittleFS.open (" options.json" , " w" );
240+ File file = LittleFS.open (" / options.json" , " w" );
237241 serializeJson (json, file);
238242 file.close ();
239243 String options;
@@ -1073,7 +1077,7 @@ static void startServices()
10731077 DefaultHeaders::Instance ().addHeader (" Access-Control-Allow-Methods" , " POST,GET,OPTIONS" );
10741078 DefaultHeaders::Instance ().addHeader (" Access-Control-Allow-Headers" , " *" );
10751079
1076- server.on (" /hardware.json" , HTTP_GET, getFile, nullptr , putFile);
1080+ server.on (" /hardware.json" , HTTP_GET | HTTP_POST , getFile, nullptr , putFile);
10771081 server.on (" /options.json" , HTTP_GET, getFile);
10781082 server.on (" /reboot" , HandleReboot);
10791083 server.on (" /reset" , HandleReset);
0 commit comments