JQUERY - Получить двоичное (base64) закодированное изображение из XML и отобразить в DOM - PullRequest
2 голосов
/ 10 февраля 2010

Я получаю этот XML-файл с

$.ajax({type: "GET", url: "data.xml",dataType: "xml",success: parse });

<Data>
   <user>
      <U_ID>4787<U_ID>
      <U_NAME>Mickey Mouse</N_NAME>
      <U_TYPE>1</U_TYPE>
      <U_PIC>iVBORw0KGgoAAAANSUhEUgAAAHgAAAB0CAYAAABOpv</U_PIC> 
   </user>
</Data>

Где <U_PIC> содержит изображение в кодировке base64 (здесь я вырезал строку для простой демонстрации, на самом деле это очень длинная строка)

Как мне

  • восстановить это?
  • декодировать base64 (есть ли встроенные функции)?
  • показать где-нибудь в DOM?
    //example: (<li><img src="'+retrievedPicture+'=></li>)

Я привык к таким операциям в стандартной функции парсера:

$(xml).find('user').each(function(){  
   var $node = $(this);
   var name = $node.find('U_NAME').text();
   $('div').append(name);    

пс. Протестировал реальное двоичное изображение с помощью notepad ++, и это безо всякой ошибки - настоящее png-изображение.

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

В современных браузерах вы можете использовать Data URI , а в IE использовать серверный скрипт для декодирования заданной строки, в php это будет выглядеть так:

<?php
 header('Content-type: image/png');
 echo base64_decode($_GET['b']);
?>
0 голосов
/ 17 февраля 2010

IE имеет ограничение на размер изображения, отображаемого с использованием DataURI

Метод jQuery работает вокруг этого?

Вы пробовали это?

...