![]() |
|
PHP и Двоичные Данные 1с | ☑ | ||
---|---|---|---|---|
0
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 ничего не получаю. Думаю где-то очевидная грубая ошибка, но не могу нагуглить. Кто подскажет выход из ситуации? Спасибо за внимание! |
|||
1
Asmody
17.10.16
✎
07:59
|
(0) Кодируй свою картинку в base64.
|
|||
2
KKrKKdd
17.10.16
✎
08:00
|
� не отображается здесь. это такой белый вопросик в черном ромбе
|
|||
3
Asmody
17.10.16
✎
08:01
|
||||
4
KKrKKdd
17.10.16
✎
08:05
|
а потом в framework7 я смогу ее декодировать? и она будет так же легко отображаться в окне?
|
|||
5
Asmody
17.10.16
✎
08:07
|
Что за "фреймворк7"?
|
|||
6
KKrKKdd
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 похоже подменяется, и изображение становится пустым... причем если попробовать вывести второй элемент массива, с этим все хорошо. |
|||
7
KKrKKdd
17.10.16
✎
08:46
|
Что же я делаю не так, и как мне сделать так чтобы так не делалось :)
|
|||
8
KKrKKdd
17.10.16
✎
13:22
|
Ну что, никаких идей?
|
|||
9
МихаилМ
17.10.16
✎
15:12
|
ваша картинка после {5d>|S3 это скорее всего размер картинки .
ну и закрывающую скобку удалите. также возможно что картинка пожата алгоритмом deflate |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |