You have a Ethernet, SD and String class in a Arduino Uno, that uses a lot of ram.
Is it an existing example ? Can you give a link to it ?
In the sketch, every ethernet byte is echoed to the serial monitor, which is only 9600 baud. Could you try without the "Serial.print(c);" ?