В любом случае, я как-то пока не видел ни одного клиента, который бы отсылал что-либо на сервер в gzip
Дело не в этом, запросы серверу отсылают и gzip и в чём хочешь. Для этого Content-Encoding использовать не нужно
Касательно темы, ещё раз, но по-простому, - никакой Content-Encoding для передачи файла не нужен т.е. никакого поля с Content-Encoding в отправляемом заголовке быть не должно), далее "Content-Type", "application/x-www-form-urlencoded;" нужен для передачи параметров формы, а не файла, для файла нужен "Content-Type", "multipart/form-data;" и вставляя где нужно BOUNDARY сформировать POST запрос, после чего его отправить на сервер.