Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

PHP и Двоичные Данные 1с

PHP и Двоичные Данные 1с
Я
   KKrKKdd
 
17.10.16 - 07:58
Добрый день!
Уважаемые участники форума, нужна ваша помощь и идеи!
Работаю с web сервисами. Подтягиваю в php двоичные данные изображения.
Делаю:
header("Content-type: image/gif");
echo $picture;
Получаю результат: картинка отображается как нужно.
Но вот ведь в чем проблема. Я к этому пхп обращаюсь извне, используя JSON
Как известно JSON не работает с двоичными данными. Поэтому я хочу получить двоичные данные как строку и затащить уже ее.
Когда я вывожу свой файл меняя тип контента,
 header("Content-type: text/enriched");
//header("Content-type: image/gif");

 echo $picture;
 то получаю краказябру типа 

ͽ×ÚÔ-á{5d>|S3ºç¸nŸÖ¿/ÿ�àä_Ñ^ÁàÚsK¶Ä—1Ëá½vU³ 7®Þ¿)û¢º¨JÕ=LªkÿÙ��������������������������������������
и так очень долго.

теперь нашла следующее. Якобы если дописать нижеприложенные строки то получиться бинарная строка.


$_buffer = '';
for ($i = 0; $i < $len; $i++) {
  $_buffer .= sprintf("%08b", ord($buffer[$i]));
}

$len я определяю так:
$len=strlen($buffer);

$_buffer получается довольно такой двоичный и красивый. но при попытке его вывести как когда-то выводила $picture ничего не получаю.

Думаю где-то очевидная грубая ошибка, но не могу нагуглить.
Кто подскажет выход из ситуации? Спасибо за внимание!
 
 
   Asmody
 
1 - 17.10.16 - 07:59
(0) Кодируй свою картинку в base64.
   KKrKKdd
 
2 - 17.10.16 - 08:00
&#65533; не отображается здесь. это такой белый вопросик в черном ромбе
   Asmody
 
3 - 17.10.16 - 08:01
   KKrKKdd
 
4 - 17.10.16 - 08:05
а потом в framework7 я смогу ее декодировать?  и она будет так же легко отображаться в окне?
   Asmody
 
5 - 17.10.16 - 08:07
Что за "фреймворк7"?
   KKrKKdd
 
6 - 17.10.16 - 08:43
я пишу мобильное приложение, используя cordova, framework7. Очень похоже что Base64 тоже не катит. Сделала кодирование,

$picture64=base64_encode($picture);
$CardID = array("$picture64", $Address);
echo json_encode($CardID);

Теперь в самом приложении получаю 
                        
newdata = JSON.parse(data);
encodedString = newdata[0];
             alert(encodedString);  // тут всплывает длинное но пустое сообщение

            //var binaryPicture = atob(decodedString);

          
            var img = document.getElementById('main');
            img.src = 'data:image/jpeg;base64,' + encodedString;
            document.body.appendChild(img);
        
ошибки не выдает. src похоже подменяется, и изображение становится пустым...

причем если попробовать вывести второй элемент массива, с этим все хорошо.
   KKrKKdd
 
7 - 17.10.16 - 08:46
Что же я делаю не так, и как мне сделать так чтобы так не делалось :)
   KKrKKdd
 
8 - 17.10.16 - 13:22
Ну что, никаких идей?
   МихаилМ
 
9 - 17.10.16 - 15:12
ваша картинка после {5d>|S3 это скорее всего размер картинки .
ну и закрывающую скобку удалите. также возможно что картинка пожата алгоритмом deflate

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует