When you say "as much validation on the client as possible" do you simply mean telling them, verbally, how it operates? :)
Thing is, they are already inserting an image. The validation fails and they are made to insert it again? That can't be the only solution?
I'm trying to create something that is fool-proof and, knowing how clients operate, they are just going to whinge about having to reinsert images because the image is fine, it was just another field that failed validation.
Urggh...I've spent ages on this and I'm back to having to just tell people, verbally, how to operate it.