Простой веб-сервер Java (ручная реализация протокола HTTP, здесь мы имеем дело с сокетами) обслуживает HTML-форма, клиент загружает изображение (PNG) через веб-браузер. Это создает запрос POST, который анализируется сервером. HTTP-запрос после исключения некоторых начальных заголовков выглядит примерно так:
Content-Type: multipart / form-data; border = —- WebKitBoundaryExample
—- WebKitBoundaryExample
Content-Disposition: форма-данные; name = «пример»; filename = «examplefile» Content-Type: image / png
Тело данных здесь …
—- WebKitBoundaryExample—
Теперь, когда тело данных было извлечено, как мне воссоздать PNG изображение? Я не знаю точного преобразования двоичного файла в текст кодирование так что мне также интересно, какая кодировка используется протоколом HTTP для изображений PNG? Фактическое тело данных в строковом формате состоит из группы символов Unicode, сшитых вместе в нечитаемый беспорядок, который, как я полагаю, представляет собой изображение. Я понятия не имею, как вернуть исходное изображение.
Я уже пробовал создать новый файл PNG и отправить в него данные тела, но всегда получаю сообщение об ошибке неподдерживаемого формата файла, когда пытаюсь его открыть. Если бы я мог каким-то образом контролировать кодировку HTTP до ее отправки на сервер, это было бы здорово. Я бы предпочел кодировку Base64, но не знаю, возможно ли это.