2010-02-09 3 views
2

я получить этот XML-файл сJquery - Получить двоичный (base64) кодируются изображение с XML и отображения в DOM

$.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);  

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

ответ

1

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

<?php 
header('Content-type: image/png'); 
echo base64_decode($_GET['b']); 
?> 
+0

Я понимаю, php является мощным, но проект находится в jquery и почти закончен, поэтому, если действительно нет хорошего способа сделать это с jq, то php. Я больше думал об этом (экспериментировал): var pico = $ .base64Decode ($ (this) .find ("U_PIC"). Text()); \t \t \t // если до ОК, а затем поместить его в атрибут Src внутри Но ... я не знаю, если это будет так легко? пс. base64Decode (encode) - это плагин, который я нашел – pectoralis

+0

... попробовал разные способы ... все, что я получаю, это страница, полная символов, напоминающих намотки – pectoralis

0

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

Описан ли метод jQuery?

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