Definiere Dir einfach einen Puffer, setze das letzte byte auf "0" (Wert Null, nicht das Zeichen 0) und lese byteweise von der SD-Karte (gibt leider kein Blockread). Am Ende dann den Puffer mittels client.print() abschicken.
z.B.
#define BUFFERSIZE 32
//BUFFERSIZE bytes plus null-byte
char buffer[BUFFERSIZE +1];
//zähler für puffer
int i =0;
//solange noch daten vorhanden sind
while( file.available()) {
buffer[i++] = file.read();
//wenn BUFFERSIZE zeichen gelesen, dann puffer abschicken
if(i == BUFFERSIZE ) {
//nullterminierung
buffer[i] = 0
//puffer abschicken
clientprint(buffer);
//zähler auf 0 setzen
i=0;
}
}
//letzen rest auch noch abschicken, weniger als BUFFERSIZE bytes im puffer nach file-ende
if(i > 0) {
//nullterminierung
buffer[i] = 0
//puffer abschicken
clientprint(buffer);
}
Achtung!! Code ist aus der Hüfte geschossen und ungetestet.