client.println("HTTP/1.1 200 OK");
if (strstr(filename, ".htm") != 0)
client.println("Content-Type: text/html");
else if (strstr(filename, ".css") != 0)
client.println("Content-Type: text/css");
else if (strstr(filename, ".png") != 0)
client.println("Content-Type: text/php");
else if (strstr(filename, ".php") != 0)
client.println("Content-Type: image/png");
else if (strstr(filename, ".jpg") != 0)
client.println("Content-Type: image/jpeg");
else if (strstr(filename, ".gif") != 0)
client.println("Content-Type: image/gif");
else if (strstr(filename, ".3gp") != 0)
client.println("Content-Type: video/mpeg");
else if (strstr(filename, ".pdf") != 0)
client.println("Content-Type: application/pdf");
else if (strstr(filename, ".js") != 0)
client.println("Content-Type: application/x-javascript");
else if (strstr(filename, ".xml") != 0)
client.println("Content-Type: application/xml");
else
client.println("Content-Type: text");
client.println();
byte clientBuf[64];
int clientCount = 0;
while(file.available()){
clientBuf[clientCount] = file.read();
clientCount++;
if(clientCount > 63) {
Serial.println("Pacote de dados de 64 bytes enviado!");
client.write(clientBuf,64);
clientCount = 0;
}
}
if(clientCount > 0) client.write(clientBuf,clientCount);
client.print("<html><body>");
if (verifica){
client.println(F("<div id=\"outer\">"));
client.print(F("<div id=\"inner\" style=\"height:"));
client.print(percentagem, 1);
client.println(F("%\">"));
client.println(F("</div></div>"));
client.println("</p></body></html>");
}
if (verifica2){
if (percentagem >= 90 || percentagem <=10){
client.println(F("<table width=\"210\" height=\"42\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">"));
client.println(F("<tr>"));
client.print(F(" <td width=\"69\" height=\"40\" class=\"iframe2\"><div align=\"center\"><b><font color=#E60000>"));
client.print(percentagem, 1);
client.println(F("%</font></b></div></td>"));
client.print(F("<td width=\"134\" class=\"iframe2\"><div align=\"center\"><b><font color=#E60000>"));
client.print(litros, 1);
client.print(F("</font></b></div></td>"));
client.println(F("</tr>"));
client.println(F("</table>"));
client.println("</p></body></html>");
} else {
client.println(F("<table width=\"210\" height=\"42\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">"));
client.println(F("<tr>"));
client.print(F(" <td width=\"69\" height=\"40\" class=\"iframe2\"><div align=\"center\"><b>"));
client.print(percentagem, 1);
client.println(F("%</b></div></td>"));
client.print(F("<td width=\"134\" class=\"iframe2\"><div align=\"center\"><b>"));
client.print(litros, 1);
client.print(F("</b></div></td>"));
client.println(F("</tr>"));
client.println(F("</table>"));
client.println("</p></body></html>");
}
}
verifica = false;
verifica2 = false;
file.close();
}
else {
client.println("HTTP/1.1 404 Not Found");
client.println("Content-Type: text/html");
client.println();
client.println("<h2>Error 404</h2>");
client.println("");
}
break;
}
if(strstr(clientline, "GET/&niv") !=0){
Log = file.open(&root, ficheiroLog, O_READ | O_APPEND);
if (Log){
Serial.println(F("A enviar ficheiro LOG para download!"));
byte clientBuffer[64];
int clientCounter = 0;
while(file.available()) {
clientBuffer[clientCounter] = file.read();
clientCounter++;
if(clientCounter > 63) {
Serial.println("Pacote de dados de 64 bytes enviado!");
client.println("Content-Disposition: attachment; filename=\"ficheiroLOG.txt\"");
client.write(clientBuffer,64);
clientCounter = 0;
}
}
if(clientCounter > 0) client.write(clientBuffer,clientCounter);
file.close();
} else {
client.println("HTTP/1.1 404 Not Found");
client.println("Content-Type: text/html");
client.println();
client.println("<h2>ERRO! Ficheiro LOG não existe!</h2>");
client.println("");
}
}
}
//PISCA LED PARA INDICAR QUE ESTÁ CONCLUÍDA A COMUNICAÇÃO SERVIDOR-CLIENTE E CLIENTE-SERVIDOR
digitalWrite(ledIndicadorComms, HIGH);
delay(1);
digitalWrite(ledIndicadorComms, LOW);
delay(1);
client.stop();
}
}
/*FIM DO PROGRAMA*/
Where is
//COLOCA EM BUFFER OS BYTES LIDOS DO FICHEIRO DO CARTÃO SD
byte clientBuf[64];
int clientCount = 0;
while(file.available()){
clientBuf[clientCount] = file.read();
clientCount++;
if(clientCount > 63) {
Serial.println("Pacote de dados de 64 bytes enviado!");
client.write(clientBuf,64);
clientCount = 0;
}
}
if(clientCount > 0) client.write(clientBuf,clientCount);
I had on my original code
int16_t c;
while ((c = file.read()) >= 0) {
client.print((char)c);
}