If you really need to do that all as part of a single HTTP POST, then I would first be more concerned about reliability and functionality. Efficiency is all going to be relative to what you are sending. If it is images in an already compressed format/container, then it is very likely you are not going to see a good percentage difference in efficiency without sacrificing something else. So in my opinion, probably the most effective thing to look into would be to use MIME encoding of your content in the POST which would mean encoding binary's using Base64. Using this you have the benefit that almost any development platform these days will either have this functionality either built in or will be easily available in external libraries for doing MIME / Base64. Sticking with highly used standards like these can make it easy to support a wide user base. Some links for reference:
http://en.wikipedia.org/wiki/MIME
http://en.wikipedia.org/wiki/Base64