Поиск по блогу

пятница, 6 марта 2015 г.

Конвертация строковых данных в строку формата base64

Конвертация строковых данных в строку формата base64. Способ N2.

Любые данные (строка, картинка, видео и т.д.) конвертируются в строку формата base64. Рассмотрим пример на строковых данных. У платформы 1С имеется функция Base64Строка на вход которой подаются данные в двоичном виде. Что бы данные привести к двоичному виду, необходимо их записать в файл и создать объект ДвоичныеДанные на основе этого файла.

Алгоритм конвертации
  1. Записываем строку в текстовый файл с указанием кодировки UTF-8 без BOM (CESU-8);
  2. Считываем текстовый файл как двоичные данные;
  3. Передаем двоичные данные в функцию Base64Строка

// Функция преобразует строку в Base64-строку.
//
// Параметры
//  Строка  - Строка - входная строка.
//
// Возвращаемое значение:
//   Строка   - строка, закодированная по алгоритму base64.
//
Функция СоздатьСтрокуBase64(Строка) Экспорт

ВременныйФайл = ПолучитьИмяВременногоФайла();

ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл, "CESU-8");
ЗаписьТекста.Записать(Строка);
ЗаписьТекста.Закрыть();

ДД_Файла = Новый ДвоичныеДанные(ВременныйФайл);
СтрокаBase64 = Base64Строка(ДД_Файла);

УдалитьФайлы(ВременныйФайл);

Возврат СтрокаBase64;

КонецФункции // СоздатьСтрокуBase64()



2 комментария:

  1. Отличный пример. Сам не догадался к своему стыду.

    ОтветитьУдалить
  2. Птк = Новый ПотокВПамяти;

    Текст = Новый ЗаписьТекста(Птк) ;
    Текст.Записать(Студент.study_recordbook);
    Текст.Закрыть();

    ДД = Птк.ЗакрытьИПолучитьДвоичныеДанные();

    Строка = Base64Строка(ДД);

    ОтветитьУдалить