(1)(2) Не пойму, зачем перегонять в base64. HTTP вроде позволяет POST бинарные файлы отправлять, буквально недавно занимался банк-клиентов, так вовсю tgz в POST-запросах шуруют
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший