Code: Select all
// Check the action to see if it was a GET request.
else if (strcmp(path, "/SdBrowse") == 0) // Respond with the path that was accessed.
{
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head><title>SDBrowse</title>");
// print all the files, use a helper to keep it clean
client.println("<h2>Collected Observations</head></h2>");
client.println("<body><h3><br>");
String str = String("<!DOCTYPE HTML><html><head></head>");
if (!SPIFFS.begin(true))
{
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
File root = SPIFFS.open("/");
File file = root.openNextFile();
while (file)
{
if(strncmp(file.name(), "/LOG", 4) == 0)
{
str += "<a href=\"";
str += file.name();
str += "\">";
str += file.name();
str += "</a>";
str += " ";
str += file.size();
str += "<br>\r\n";
}
file = root.openNextFile();
}
client.print(str);
client.println("</h3><br><br>");
client.println("<a href=http://" + publicIP + ":" + LISTEN_PORT + "/Weather >Home</a><br>");
client.println("</body>");
client.println("</html>");
end();
}
// Check the action to see if it was a GET request.
Serial monitor output showing Sketch flow in readFile function:
Client connected: Wed , 10/02/2019 , 01:26:45 EDT
Client IP: 10.0.0.146
Processing request
Action: GET
Path: /SdBrowse
Client closed: Wed , 10/02/2019 , 01:26:46 EDT
Client connected: Wed , 10/02/2019 , 01:26:48 EDT
Client IP: 10.0.0.146
Processing request
Action: GET
Path: /LOG02102019.TXT
File55: /LOG02102019.TXT
57
59
60
61
Client closed: Wed , 10/02/2019 , 01:26:48 EDT
Client connected: Wed , 10/02/2019 , 01:26:56 EDT
Client IP: 10.0.0.146
Processing request
Action: GET
Path: /LOG01102019.TXT
File55: /LOG01102019.TXT
57
59
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
60
61
Client closed: Wed , 10/02/2019 , 01:26:56 EDT
Function readFile:
Code: Select all
void readFile()
{
if(!SPIFFS.begin(true))
{
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
// digitalWrite(online, HIGH); //turn-on online LED indicator
String filename = (const char *)&MyBuffer;
Serial.print("File55: ");
Serial.println(filename);
File webFile = SPIFFS.open(filename);
Serial.println("57");
if (!webFile)
{
Serial.println("File58 LOG file failed to open");
Serial.println("\n");
}
else
{
Serial.println("59");
char buf[1024];
int len;
while (len = webFile.read((uint8_t *)buf, 1024))
{
Serial.println("60");
client.write((const char*)buf, len);
Serial.println("61");
}
webFile.flush();
webFile.close();
}
error = 0;
delayTime = 1000;
MyBuffer[0] = '\0';
// digitalWrite(online, LOW); //turn-off online LED indicator
}
ESP32 Web site for project: http://bit.ly/2lcu0NX
William