Konvertieren von Daten-URLs in Blobs
Das Umwandeln beliebiger Daten in eine Daten-URL mithilfe von readAsDataURL() von FileReader ist eine nützliche Technik. Was aber, wenn Sie diese Daten-URL wieder in eine Blob-Instanz konvertieren müssen?
Browsernative Konvertierung
Derzeit gibt es dafür keine integrierte Browser-API Konvertiert Daten-URLs direkt in Blobs. Es gibt jedoch Problemumgehungslösungen, die benutzerdefinierten JavaScript-Code verwenden.
Benutzerdefinierte JavaScript-Lösung
Eine weithin akzeptierte Methode wurde von Matt auf Stack Overflow vorgeschlagen (Wie man dataURL in umwandelt). Dateiobjekt in Javascript?). Hier ist eine aktualisierte Version seines Codes:
<code class="javascript">function dataURItoBlob(dataURI) { const byteString = atob(dataURI.split(',')[1]); const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; const ab = new ArrayBuffer(byteString.length); const ia = new Uint8Array(ab); for (let i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } const blob = new Blob([ab], { type: mimeString }); return blob; }</code>
Verwendung
Sie können jetzt dataURItoBlob() verwenden, um Ihre Daten-URL in ein Blob-Objekt umzuwandeln:
<code class="javascript">const dataURL = 'data:image/png;base64,...'; const blob = dataURItoBlob(dataURL);</code>
Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Daten-URL in einen Blob in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!