Benutzer Matt hat vor einem Jahr den folgenden Code vorgeschlagen ( Wie konvertiere ich dataURL in ein Dateiobjekt in Javascript? ), Der Ihnen helfen könnte
EDIT: Wie einige Kommentatoren berichteten, ist BlobBuilder vor einiger Zeit veraltet. Dies ist der aktualisierte Code:
function dataURItoBlob(dataURI) {
// convert base64 to raw binary data held in a string
// doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
var byteString = atob(dataURI.split(',')[1]);
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
// write the bytes of the string to an ArrayBuffer
var ab = new ArrayBuffer(byteString.length);
// create a view into the buffer
var ia = new Uint8Array(ab);
// set the bytes of the buffer to the correct values
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
// write the ArrayBuffer to a blob, and you're done
var blob = new Blob([ab], {type: mimeString});
return blob;
}
Wie @Adria Methode, aber mit Fetch API und nur kleiner [ caniuse? ]
Sie müssen nicht über den Mimetyp nachdenken, da der Blob-Antworttyp sofort funktioniert
Denken Sie nicht, dass Sie es kleiner machen könnten, ohne libs zu verwenden
quelle
const blob = await (await fetch(url)).blob();
node-fetch
Dosis haben jedoch ein Konzept von Blob, aber da es serverseitig ist, ist es ziemlich nutzlos. Außerdem haben Blobs keine Erweiterungen oder Dateinamen (es ist nur ein Container zum Speichern von Daten)input dataURI ist die Daten-URL und dataTYPE ist der Dateityp und gibt dann das Blob-Objekt aus
quelle
dataTYPE
ist eingebettet indataURI
und sollte daher wie in der ersten Antwort analysiert werden.XHR-basierte Methode.
quelle
Versuchen:
quelle
In modernen Browsern kann man den von Christian d'Heureuse vorgeschlagenen Liner in einem Kommentar verwenden:
quelle
Erstellen Sie einen Blob mit der XHR-API :
quelle
Verwenden Sie meinen Code, um dataURI in Blob umzuwandeln. Es ist einfacher und sauberer als andere.
quelle
Da keine dieser Antworten base64- und non-base64-dataURLs unterstützt, basiert diese auf der gelöschten Antwort von vuamitom:
Hinweis: Ich bin mir nicht sicher, ob es solche gibt andere dataURL-MIME-Typen gibt, die möglicherweise anders behandelt werden müssen. Aber bitte lassen Sie es mich wissen, wenn Sie es herausfinden! Es ist möglich, dass dataURLs einfach ein beliebiges Format haben können. In diesem Fall liegt es an Ihnen, den richtigen Code für Ihren speziellen Anwendungsfall zu finden.
quelle
verwenden
eher, als
quelle
ArrayBuffer
Pfads nicht funktioniert.