2010-02-09 39 views
2

我檢索與JQUERY - 檢索XML和顯示二進制的(Base64)編碼的圖片在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編碼的圖片此XML文件(我這裏切串便於演示,它實際上是一個很長的字符串)

我應該怎樣

  • 檢索這個?
  • 解碼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);  

PS。用記事本++測試了實際的二進制圖片,並且沒有任何錯誤是真實的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 //如果達是OK,然後把它src屬性裏面 但是...我不知道它是否會那麼容易? ps。 base64Decode(編碼)是我發現的一個插件 – pectoralis 2010-02-10 00:02:46

+0

...嘗試了不同的方式...我得到的是一個充滿了繞組樣式的字符 – pectoralis 2010-02-10 00:44:42

0

IE瀏覽器上的圖像大小的限制使用DataURI顯示的

jQuery方法是否解決了這個問題?

你試過了嗎?