pagina web+sd+arduino ethernet

erpomata:
Infatti, inviando al client una riga per volta funziona.

Quando fai
Serial.print(char(c));
Stampi un carattere all volta

Non mi pare che tu abbia inserito un controllo sul \r \n come riferimento per l'invio
Per scrivere una riga alla volta dovresti usare form.endsWith(string2) dove string2 rappresenta i caratteri che per te sono i terminatori di riga
Dopo di che stampi form e lo cancelli per "riempirlo" con la riga successiva

Secondo me se la stringa fosse troppo lunga manderesti in crash Arduino