2011-11-21 173 views
1

所有
我得到的圖像(使用XHR)的二進制數據轉換,讓我們命名這個二進制數據作爲數據
我不知道如何將數據轉換成真正的img標籤
起初:
我嘗試使用FileRederreadAsBinaryString,但也不會造成reader.onloadend工作,將不會觸發如何IMG的binarydata到的img標籤

是否有其他的方法來完成這件事?
在此先感謝〜

$.ajax({ 
       url:src, 
       type:"GET", 
       success:function(data){ 
    var reader=new FileReader() 
    reader.onload=function(e){ 

     var data=e.target.result 
     console.log(data) 

    } 
    reader.readAsDataURL(data) 

...

+0

請嘗試'reader.onload'(對我很好)。 – ComFreek

+0

將其轉換爲Base64,然後直接將它連接到img src - data:image/jpg; base64,DATA –

+0

@ ComFreek,我試過了,仍然一樣 – Lanston

回答

0

你或許應該叫readAsDataURL,並使用load事件來代替。

var reader = new FileReader(); 

reader.onload = function (e) { 
    var img = new Image(); 
    img.src = e.target.result; 
}; 
reader.readAsDataURL(file); 
+0

我在第一次嘗試開始時,問題在於,* reader.onload *沒有激活 – Lanston

+0

您可以發佈您的代碼嗎? –

0

Base64編碼你的二進制數據。關於如何在JavaScript中對64位二進制數據進行base64,請參見question

然後將base64字符串直接插入到圖像標記中。例如,如果二進制數據是JPG圖像,則可以這樣做(理論上):

$.ajax({ 
    url:src, 
    type:"GET", 
    success:function(binaryData) { 

    //toBase64 is a made up function, see above 
    var base64Data = toBase64(binaryData); 

    //assuming img is defined outside of here (not in the scope of this question) 
    img.src = "data:image/jpg;base64," + base64Data; 
    } 
}); 
+0

嗨,我試試這個,但是我得到了相同的「base64」,這個「base64」很奇怪,與右邊的base64不同 – Lanston