|
@ -3904,7 +3904,7 @@ void explorerHandleFileStorageTask(void *parameter) { |
|
|
// Sends a list of the content of a directory as JSON file
|
|
|
// Sends a list of the content of a directory as JSON file
|
|
|
// requires a GET parameter path for the directory
|
|
|
// requires a GET parameter path for the directory
|
|
|
void explorerHandleListRequest(AsyncWebServerRequest *request) { |
|
|
void explorerHandleListRequest(AsyncWebServerRequest *request) { |
|
|
DynamicJsonDocument jsonBuffer(8192); |
|
|
|
|
|
|
|
|
DynamicJsonDocument jsonBuffer(16384); |
|
|
//StaticJsonDocument<4096> jsonBuffer;
|
|
|
//StaticJsonDocument<4096> jsonBuffer;
|
|
|
String serializedJsonString; |
|
|
String serializedJsonString; |
|
|
AsyncWebParameter *param; |
|
|
AsyncWebParameter *param; |
|
@ -3951,11 +3951,30 @@ void explorerHandleListRequest(AsyncWebServerRequest *request) { |
|
|
request->send(200, "application/json; charset=iso-8859-1", serializedJsonString); |
|
|
request->send(200, "application/json; charset=iso-8859-1", serializedJsonString); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool explorerDeleteDirectory(File dir) { |
|
|
|
|
|
|
|
|
|
|
|
File file = dir.openNextFile(); |
|
|
|
|
|
while(file) { |
|
|
|
|
|
|
|
|
|
|
|
if(file.isDirectory()) { |
|
|
|
|
|
explorerDeleteDirectory(file); |
|
|
|
|
|
} else { |
|
|
|
|
|
FSystem.remove(file.name()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
file = dir.openNextFile(); |
|
|
|
|
|
|
|
|
|
|
|
esp_task_wdt_reset(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return FSystem.rmdir(dir.name()); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// Handles delete request of a file or directory
|
|
|
// Handles delete request of a file or directory
|
|
|
// requires a GET parameter path to the file or directory
|
|
|
// requires a GET parameter path to the file or directory
|
|
|
void explorerHandleDeleteRequest(AsyncWebServerRequest *request) { |
|
|
void explorerHandleDeleteRequest(AsyncWebServerRequest *request) { |
|
|
File file; |
|
|
File file; |
|
|
bool isDir; |
|
|
|
|
|
AsyncWebParameter *param; |
|
|
AsyncWebParameter *param; |
|
|
char asciiFilePath[256]; |
|
|
char asciiFilePath[256]; |
|
|
if(request->hasParam("path")){ |
|
|
if(request->hasParam("path")){ |
|
@ -3963,10 +3982,8 @@ void explorerHandleDeleteRequest(AsyncWebServerRequest *request) { |
|
|
convertUtf8ToAscii(param->value(), asciiFilePath); |
|
|
convertUtf8ToAscii(param->value(), asciiFilePath); |
|
|
if(FSystem.exists(asciiFilePath)) { |
|
|
if(FSystem.exists(asciiFilePath)) { |
|
|
file = FSystem.open(asciiFilePath); |
|
|
file = FSystem.open(asciiFilePath); |
|
|
isDir = file.isDirectory(); |
|
|
|
|
|
file.close(); |
|
|
|
|
|
if(isDir) { |
|
|
|
|
|
if(FSystem.rmdir(asciiFilePath)) { |
|
|
|
|
|
|
|
|
if(file.isDirectory()) { |
|
|
|
|
|
if(explorerDeleteDirectory(file)) { |
|
|
snprintf(logBuf, serialLoglength, "DELETE: %s deleted", asciiFilePath); |
|
|
snprintf(logBuf, serialLoglength, "DELETE: %s deleted", asciiFilePath); |
|
|
loggerNl(serialDebug, logBuf, LOGLEVEL_INFO); |
|
|
loggerNl(serialDebug, logBuf, LOGLEVEL_INFO); |
|
|
} else { |
|
|
} else { |
|
|