Ethernet + SD card (FAT32) code becomes too long for my UNO

I had this same problem and used all the tricks to reduce memory. The problem is that using the F() function, passing by reference instead of value, etc. reduces memory by a couple bytes here and a couple bytes there. What I needed was a major reduction.
It turns out that the SD library is a real pig when it comes to memory. It turns out that the SdFat library provides almost the same functionality with a much smaller memory footprint. When I switched to using SdFat, I freed up enough memory to add even more functionality on a UNO.

Of course, I then decided to add a web interface that required me to move to a Mega...