Delphi. DataSnap. Как передать файл (изображение) с клиента на сервер с помощью строки, запакованной в вариантный массив ?

Итак, в данном посте усовершенствуем алгоритм с отправкой файла(изображения) с клиента на сервер через строку. Это сделано для того, чтобы избежать потенциального обрезания строки терминирующим нулем.

Алгоритм хорошо работает для файлов до 3 мб. Файл в 6 мб. уже подвешивает систему, поэтому нужно сделать передачу по частям, это я проделаю в следующем посте.

Также, для обратной задачи – передать файл с сервера на клиент – нужно проявить немного фантазии и проделать все тоже самое, только наоборот.

Алгоритм будет таким…

-На клиенте запаковать строку в вариантный массив

-Отправить вариантный массив в качестве OleVariant на сервер

-На сервере распаковать вариантный массив в строку

-Превратить строку в файл (изображение)

-Загрузить в СУБД

Что делаем на сервере?

Пишем функцию распаковки из OleVariant в String…

 

Распаковка + запись в СУБД

Что делаем на клиенте?

Пишем функцию “Из строки в OleVariant”

Далее на кнопку “вешаем” следующий обработчик