2016-08-29 3 views
0

Существует следующий код:JS преобразование блобо URL в 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.responseType = 'blob' до xhr.send().

Кроме того, помимо использования 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-url в base64 для использования в другом месте. –

0

Вам необходимы пройти весь объект файла от пользователя, а не только URL объекта Blob. По всему файлу я имею в виду имя, тип, URL и т. Д.

В принципе, если у загрузчика есть файл в массиве, то есть files[0], вы должны пройти в readAsDataURL(files[0]).

Смежные вопросы