Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.62 Кодирование в Base64

Страниц (1): [1]
 

1. Kibor - 03 Июня, 2020 - 21:08:36 - перейти к сообщению
функция base64code предназначена для кодирования текста и бинарных файлов в Base64.

функция декодирования base64decode - Функция декодирования base64.

Возможно 3 варианта использования.

Первый предназначен для кодирования текста заканчивающегося 0, тогда как в середине 0 нет. В виде параметра принимает string:
CODE:
base64code ("Это конвертировать в Base64");


Второй может кодировать бинарные данные, в состав которых может входить 0.
В виде первого параметра идет указатель на массив char, вторым количество байт которые надо преобразовать:
CODE:
base64code (#BYTE[0], 250);


Функция возвращает string

=========================================================

Для кодирования файлов большого размера следует применять третий вариант:

CODE:
base64code(#t[0], #c[0], u);

Первый параметр указатель на массив char в который запишутся кодированные данные.
Второй - указатель на массив char исходник.
Третий - количество байт которые надо преобразовать

Возвращает количество байт массива с результатом.
Последний элемент массива с результатом заполнится 0, если хватит размера массива.

Если размера массива приемника не хватает, вернет -1 и прервет кодировку.

Важно выделять массив с запасом, так как размер кодированных данных больше размера исходника.
2. Adomb - 09 Июля, 2020 - 10:15:49 - перейти к сообщению
PHP
CODE:
$img = $_POST['img'];
$img = str_replace(' ', '+', $img);
$result = file_put_contents('img.jpg', base64_decode($img));


Примерный код в киборе
CODE:
if(fopen("C:\img.jpg", "rb")){u=freadb(#c[0],sizearray(c)); fclose();}
strcpy(#POSTData[0], "img="+base64code(#c[0],u));
sendgetweb(#CH[0],usag,"POST", adrs,".../immg.php", Header,#POSTData[0],size(#POSTData[0]));


Затык в размере файла больше 200кб.
base64code не справляется, я так понимаю.

BMP, какие хотелось бы отсылать на сервер без ftp - так вовсе весят от 2Мб.
Как бы реализовать..? Улыбка
3. Kibor - 10 Июля, 2020 - 06:25:56 - перейти к сообщению
 Adomb пишет:
Затык в размере файла больше 200кб.
base64code не справляется, я так понимаю.

BMP, какие хотелось бы отсылать на сервер без ftp - так вовсе весят от 2Мб.
Как бы реализовать..?



Доработал. Легко быстро обрабатывает намного большие размеры.

Для кодирования файлов большого размера следует применять третий вариант:

CODE:
base64code(#t[0], #c[0], u);

Первый параметр указатель на массив char в который запишутся кодированные данные.
Второй - указатель на массив char исходник.
Третий - количество байт которые надо преобразовать

Возвращает количество байт массива с результатом.
Последний элемент массива с результатом заполнится 0, если хватит размера массива.

Если размера массива приемника не хватает, вернет -1 и прервет кодировку.

Важно выделять массив с запасом, так как размер кодированных данных больше размера исходника.
4. Adomb - 10 Июля, 2020 - 11:47:10 - перейти к сообщению
 Kibor пишет:
Доработал. Легко быстро обрабатывает намного большие размеры.

Kibor, это просто праздник! Улыбка Спасибо.
BMP улетает.
5. AdryV - 15 Мая, 2021 - 03:09:51 - перейти к сообщению
подскажите как Кибором декодировать?
а то мне в голову лезет только с++ и дллка с функцией
6. Zireael - 15 Мая, 2021 - 07:29:40 - перейти к сообщению
 Цитата:
подскажите как Кибором декодировать?

https://docs.microsoft.com/en-us...tbinarytostringa
7. Kibor - 18 Февраля, 2022 - 06:59:59 - перейти к сообщению
Поправил кодирование в base64 для рус символов.
Добавил функцию декодирования base64decode - Функция декодирования base64.

Powered by ExBB FM 1.0 Final