2016-08-29 2 views
0

Es gibt den folgenden Code ein:JS konvertieren Blob-URL zu Base64-Datei

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

Blob ist 'blob:http://localhost:3000/e3c23a22-75b1-4b83-b39a-75104d1909b9' und ich habe die folgende Fehlermeldung anzeigt:

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

Wie kann ich diesen Fehler zu beheben und wandle Blob in Base64-kodiertes Bild um? Danke im Voraus!

+0

Hey Buddy, ich steckte mit demselben Problem. Hast du iDEA darüber oder auf andere Weise herausgefunden? –

Antwort

-2

Haben Sie nicht Ihren Code über die xhr hier, aber es ist wahrscheinlich, dass Sie responseType nicht richtig einstellen. Versuchen Sie xhr.responseType = 'blob' vor xhr.send().

Auch abgesehen von FileReader verwenden, können die folgenden mehr einfach sein:

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

Was? Das war nicht gefragt. Sie verwenden eindeutig so etwas wie einen Videostream und möchten die Blob-URL in base64 umwandeln, um sie woanders zu verwenden. –

0

Sie müssen vom Uploader in der gesamten Datei-Objekt übergeben und nicht nur die Blob-URL. Mit dem gesamten Dateiobjekt meine ich den Namen, den Typ, die URL, etc.

Grundsätzlich, wenn der Uploader eine Datei im Array hat, d. H. files[0], würden Sie readAsDataURL(files[0]) übergeben.

Verwandte Themen