2016-08-29 74 views
0

有下面的代碼:JS轉換BLOB網址爲Base64文件

console.log(blob); 
var reader = new window.FileReader(); 
reader.onloadend = function() {    
    console.log(reader.result); 
}; 
reader.readAsDataURL(blob); 

斑點是 'blob:http://localhost:3000/e3c23a22-75b1-4b83-b39a-75104d1909b9' 我已經得到了以下錯誤:

TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'. 

我怎樣才能解決這個錯誤並將Blob轉換爲Base64編碼圖像?提前致謝!

+0

嘿巴迪,我堅持着同樣的問題。你有沒有找到關於它或任何其他方式的iDEA。 –

回答

-2

在這裏沒有關於xhr的代碼,但它可能是你沒有設置responseType的權利。在xhr.send()之前嘗試xhr.responseType = 'blob'

而且,除了使用FileReader,下面可能會更直截了當:

xhr.onreadystatechange = function(){ 
    if (this.readyState == 4 && this.status == 200){ 
     var url = window.URL || window.webkitURL; 
     img.src = url.createObjectURL(this.response); 
    } 
} 
+0

什麼?那不是被問到的。他們明確使用類似視頻流的東西,並希望將blob網址轉換爲base64以在其他地方使用。 –

0

你需要在整個文件對象把內容上傳,而不僅僅是BLOB網址。整個文件對象的意思是名稱,類型,網址等。

基本上,如果上傳者在數組中有一個文件,即files[0],那麼您會傳入readAsDataURL(files[0])